怎么用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-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享