怎么用node 删除重复照片-icode9专业技术文章分享
2024/10/20 6:03:05
本文主要是介绍怎么用node 删除重复照片-icode9专业技术文章分享,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
删除重复照片可以通过比较照片的哈希值来实现。哈希值可以唯一地标识一张照片,如果两张照片的哈希值相同,则它们是相同的图片。以下是一个使用 Node.js 和 image-hash
库来删除重复照片的示例代码。
首先,安装所需的依赖库:
npm install fs path image-hash
Shell
然后,编写一个脚本来删除重复的照片:
const fs = require('fs'); const path = require('path'); const { createHash } = require('crypto'); const { getImageHash } = require('image-hash'); const directoryPath = './photos'; // 替换为你的照片目录 async function getPhotoHashes(directory) { const files = fs.readdirSync(directory); const photoHashes = new Map(); for (const file of files) { const filePath = path.join(directory, file); if (fs.statSync(filePath).isFile()) { try { const hash = await getImageHash(filePath); if (photoHashes.has(hash)) { photoHashes.get(hash).push(filePath); } else { photoHashes.set(hash, [filePath]); } } catch (error) { console.error(`无法处理文件 ${filePath}: ${error.message}`); } } } return photoHashes; } async function deleteDuplicatePhotos(directory) { const photoHashes = await getPhotoHashes(directory); for (const [hash, filePaths] of photoHashes) { if (filePaths.length > 1) { console.log(`发现重复照片,哈希值: ${hash}`); for (let i = 1; i < filePaths.length; i++) { const filePath = filePaths[i]; console.log(`删除文件: ${filePath}`); fs.unlinkSync(filePath); } } } } deleteDuplicatePhotos(directoryPath) .then(() => console.log('删除重复照片完成')) .catch(error => console.error(`发生错误: ${error.message}`));
JavaScript
这个脚本的工作原理如下:
- 读取目录中的所有文件:使用
fs.readdirSync
读取指定目录中的所有文件。 - 计算每张照片的哈希值:使用
image-hash
库计算每张照片的哈希值。 - 存储哈希值和文件路径:使用
Map
存储每张照片的哈希值及其对应的文件路径。 - 删除重复的照片:如果某个哈希值对应多个文件路径,则删除除第一个文件之外的所有文件。
你可以将这段代码保存到一个文件中(例如 deleteDuplicatePhotos.js
),然后在命令行中运行:
node deleteDuplicatePhotos.js
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
这篇关于怎么用node 删除重复照片-icode9专业技术文章分享的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20Mycat教程:新手快速入门指南
- 2024-11-20WebSocket入门:轻松掌握WebSocket基础
- 2024-11-19WebSocket入门指南:轻松搭建实时通信应用
- 2024-11-19Nacos安装资料详解:新手入门教程
- 2024-11-19Nacos安装资料:新手入门教程
- 2024-11-19升级 Gerrit 时有哪些注意事项?-icode9专业技术文章分享
- 2024-11-19pnpm是什么?-icode9专业技术文章分享
- 2024-11-19将文件或目录压缩并保留到指定的固定目录怎么实现?-icode9专业技术文章分享
- 2024-11-19使用 tar 命令压缩文件并且过滤掉某些特定的目录?-icode9专业技术文章分享
- 2024-11-18Nacos安装入门教程