最近整理了多年以来积攒的照片,过程中没找到很合适的工具来解决需求,便自己动手写了一番。后面把总结的方法融入到代码中,添加了通过命令行运行的脚本,分享出来希望也能解决你的问题。

GitHub: https://github.com/RuiRay/PhotosProducer

照片太多时,在整理过程中你是否也遇到过下面这些问题:

  1. 存储的目录很多,记不清哪些时光是有趣的,哪一段时间的照片丢失变成了空白;
  2. 有很多重复照片,但没有什么好的方法快速找出来进行清理;
  3. 定期导出手机照片到电脑上备份,每次都得仔细的排除上次已备份的照片;
  4. 照片文件越来越大(快10MB),但多数照片都不需要保存太高分辨率;

针对上面这些问题,已经实现了这些工具来解决问题:

  1. 根据照片的拍摄时间生成日历,用日期查看的相册;
  2. 根据 文件尺寸 + 文件名 + MD5 三个维度快速找出重复文件的工具;
  3. 使用 adb 同步手机照片,能快速进行增量备份和进度展示的工具;
  4. 可方便的修改图片压缩参数,且不丢失 EXIF 信息的缩减尺寸工具;

工具介绍

一、日历相册生成工具

解析照片名称中的日期渲染到日历上,如白色格子表示无照片,浅色格子表示低于5张。此外汇总照片信息,计算有丢失照片的月份,最终生成单个 HTML 文件在浏览器中预览。效果如下:

运行脚本和参数说明(源:src/java/task/PhotosCalendarTask.java):

./runPhotosCalendarTask.sh /xxx/index.html /xxx/photosDir1/ /xxx/photosDir2/
  • 参数1(/xxx/index.html): 导出的 HTML 文件路径(可选,默认导出在照片目录下)
  • 参数2+(/xxx/photosDir1/):照片目录,支持多个

二、重复文件清理工具

扫描目录下的全部文件,对有相同文件大小的计算MD5确定重复。为了减少耗时提高效率,当文件大小相同且文件名也相同时认为重复文件,并输出中输出进度情况。

命令行运行示例(图片源为:./PhotosProducer/example/):

TEMP: md5=008cfef91391d8d09b000bfb6863118d, size=3 KB, file=/photos2021/IMG_20201010_144640.jpg
TEMP: md5=008cfef91391d8d09b000bfb6863118d, size=3 KB, file=/photos2022/C65_2021-05-29.jpg
Progress: (10/10) same size: [/photos2020/IMG_20201010_144640.jpg, /photos2021/C65_2021-05-29.jpg]
========================
Delete: /Users/xxx/PhotosProducer/example/photos2021/2021-04-13_IMG_38.jpg, 3 KB
Delete: /Users/xxx/PhotosProducer/example/photos2021/2021_IMG_55.jpg, 3 KB
Delete: /Users/xxx/PhotosProducer/example/photos2022/1644643310000.jpg, 3 KB
上列 229 个重复文件,共占用存储 300 KB,输入 del 进行删除,输入其它退出程序:

运行脚本和参数说明(源:src/java/task/DuplicateFileCleanTask.java):

./runDuplicateFileCleanTask.sh  /xxx/inputDir/ /xxx/report.txt
  • 参数1(/xxx/inputDir/): 需要去重的图片目录
  • 参数2(/xxx/report.txt):重复文件的文本报告(可选)

三、手机照片同步工具

需要手机上打开了「开发者模式」,且电脑上有安装 adb (Android Debug Bridge) 工具。通过 ls -al 命令获取手机中照片的名称和大小,然后 adb pull 拉取照片,将拉取成功的照片名称记录到日志文件,下次再去读日志做到增量同步。

运行脚本和参数说明(源:src/java/task/SyncPhotosTask.java):

./runSyncPhotosTask.sh  /xxx/outputDir/ /xxx/PhoneFile.log /sdcard/DCIM/CameraXXX
  • 参数1(/xxx/outputDir/): 导出到电脑端的目录

  • 参数2(/xxx/PhoneFile.log):已导出的照片日志文件,用于增量同步

  • 参数3+(/sdcard/DCIM/CameraXXX):手机中照片的目录,支持多个(可选)

    // 已内置的手机照片目录
    "/sdcard/DCIM/Camera",
    "/sdcard/DCIM/Screenshots",
    "/sdcard/tencent/MicroMsg/WeiXin",
    "/sdcard/Picture/知乎",
    "/sdcard/Tencent/QQ_Images",
    

四、图片尺寸缩减工具

减少图片文件大小主要有两种方法:降低画质,通过优化压缩算法,处理后通常人眼很难察觉,多数照片实测能节省 60% 的存储空间,如在 MacOS 上用的 ImageOptim 工具;降低尺寸,如将手机上 (5000*4000) 的分辨率,裁减为 2K(2048*1024) 分辨率,处理后图片无法再 4K 高清显示,但能节省 90%+ 的存储空间。这里提供降低尺寸的工具,依赖 Scalr 库和 javax.imageio 的底层能力,并保持 EXIF 信息不丢失。

运行脚本和参数说明(源:src/java/task/ReduceImageSizeTask.java):

./runReduceImageSizeTask.sh /xxx/inputDir/ /xxx/outputDir/
  • 参数1(/xxx/inputDir/):需要缩减尺寸的照片目录
  • 参数2(/xxx/outputDir/):缩减尺寸后的照片存放目录(可选,为空时覆盖原图)

照片整理工具(日历相册, 重复文件清理, 手机照片同步, 图片尺寸缩减)相关推荐

  1. 非常好用的重复文件清理软件Tidy Up Mac

    Tidy Up for Mac是市场为唯一的全功能重复文件清理工具,Tidy Up Mac版能够为用户进行重复文件深度查找和磁盘清理,为您清理出Mac电脑中的垃圾文件.有需要的朋友快来看看吧!不少用户 ...

  2. Mac重复文件清理软件—Cisdem Duplicate Finder for mac

    对于Mac用户来说,Cisdem Duplicate Finder是一款出色的重复查找工具,可以检测和查找所有重复内容,并批量删除它们以快速释放外部/内部硬盘空间.所有重复的照片,音乐,文档,视频或其 ...

  3. Duplicate File Detective(电脑重复文件清理软件)官方正式版V7.0.78.0 | 电脑怎么扫描重复文件

    Duplicate File Detective 是一款优秀的业务级电脑重复文件清理软件,也叫重复文件侦探,内置不断优化改进的智能多线程分析引擎和文件哈希计算器来计算任何文件的哈希值,能一次查找多个本 ...

  4. Advanced Duplicate Cleane‪r‬ for Mac(高级重复文件清理软件)

    您是否需要清除文件,照片,视频,文档或应用程序的多个副本?Advanced Duplicate Cleane‪r‬ for Mac重复文件清理会扫描您的整个Mac,查找重复和相似的文件,照片,视频,音 ...

  5. 《单身狗重复文件清理软件v1》使用计数器

    在这里你可以看到<单身狗重复文件清理软件>被使用的次数. 每次软件打开,都会访问一次本计数器. 本文章仅用于计数,无法评论. 有任何问题,请在<软件信息发布>文章下发评论,谢谢 ...

  6. 删除重复导入的手机照片

    删除重复导入的手机照片,代码片断如下: import ospicpath = r'F:\QQ传输文件\MobileFile\WifiPhoto'def readFileName(path):retur ...

  7. FileDetector-基于java开发的照片整理工具

    1. 项目背景 开发这个功能的主要原因如下: 1. 大学期间拍摄了约50G的照片,照片很多 2. 存放不规范,导致同一张照片出现在不同的文件夹内,可读性差,无法形成记忆线. 3. 重复存放过多,很多照 ...

  8. 重复文件清理软件:Umbrella for mac

    Umbrella for mac破解版专为Mac用户设计的一款重复文件查找工具,可以帮助您可以查找重复文件,包含PDF,图像,电影等,同时 安全地删除或移动标记的重复项,需要的朋友欢迎来下载! Umb ...

  9. Mac重复文件清理软件Cisdem Duplicate Finder Mac

    对于Mac用户来说,Cisdem Duplicate Finder是一款出色的重复查找工具,可以检测和查找所有重复内容,并批量删除它们以快速释放外部/内部硬盘空间.所有重复的照片,音乐,文档,视频或其 ...

最新文章

  1. 树莓派系统安装_树莓派系统安装
  2. angular 注入器配置_angular依赖注入
  3. springJAR包和配置文件
  4. Eclipse 浏览(Navigate)菜单
  5. tomcat java内存_[Tomcat]Java内存溢出详解Tomcat内存设置
  6. 高频面试题2:单例设计模式
  7. 字符串的展开(洛谷-P1098)
  8. 使用root安装nginx后使用非root运行方法
  9. 英文教材《FPGA-Prototyping-By-Verilog-Examples》下载
  10. AttributeError lxml.etree Element object has no attribute get_attribute
  11. Docker 入门实践
  12. 三点共线判断方法分析
  13. openssl s_client s_server双向认证
  14. Linux常用的设置文件安全上下文命令使用方法
  15. 支付宝|微信|h5|个人收款免签约支付系统源码
  16. 【webapp】开发手机版WEBAPP MOBILE APP
  17. L1-6 喝嘤料 (15 分)
  18. Python GUI之tkinter窗口视窗教程大集合
  19. 东莞惠州楼盘又来深抢客 推盘量居历史高位 2012.5.12
  20. PETS 5 考试经验

热门文章

  1. androidspring!Android开发究竟该如何学习,薪资翻倍
  2. 【docker ros】docker 开启自启运行容器中的程序
  3. MIT CMS.300 Session 5 – UNWRITTEN RULES 游戏的潜在规则
  4. 【刷爆LeetCode】五月算法集训(14)栈
  5. Dubbo的多种序列化算法
  6. 【官宣】顺丰同城宣布苏炳添出任首位品牌代言人,给你稳稳的幸福
  7. 全国企业信用信息 网站
  8. 欧姆龙PLC分频电路
  9. 关于五笔字型学习五笔难拆汉字学习总结
  10. 绝地求生服务器维护得多长时间,绝地求生7月7日服务器维护需要多长时间?绝地求生维护公告介绍...