You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Apple Photos中按分辨率批量删除低分辨率重复照片?

批量删除Photos.app中低分辨率重复照片的方法

这个问题确实戳中了普通重复文件工具的盲区——它们大多依赖文件哈希、文件名或者精确的像素匹配,而分辨率半幅的重复项就会被漏掉。好在Photos.app本身就有工具能解决这个问题,给你两种靠谱的方法:

方法一:用智能相册精准筛选(适合所有用户)

这是最安全直观的方式,利用Photos的智能相册功能锁定低分辨率照片:

  1. 打开Photos.app,点击左上角文件 > 新建智能相册(iPhone上则是进入「相册」标签页,点击右上角「+」选择「新建智能相册」)。
  2. 设置筛选条件:
    • 第一个条件选择「媒体类型」>「照片」,确保只筛选照片文件。
    • 点击「+」添加第二个条件:选择「宽度」>「小于」,输入你原版照片宽度的一半(比如iPhone常见原版宽度是4032,那就输入2016)。
    • 再添加第三个条件:选择「高度」>「小于」,输入原版照片高度的一半(比如原版高度3024,输入1512)。
    • (可选)如果低分辨率照片都来自iCloud共享相册,可以再加一个条件「来源」>「iCloud共享相册」,进一步缩小范围,避免误筛。
  3. 创建完成后,智能相册里会自动列出所有符合条件的低分辨率照片。全选这些照片(Mac上用Cmd+A,iPhone上长按一张后滑选所有),然后按Delete键删除即可。

方法二:终端命令批量处理(适合有技术基础的用户)

如果你的Photos库存储在本地Mac上,可以用终端命令精准定位并删除低分辨率照片,效率更高:

  1. 先完全关闭Photos.app,确保库文件没有被占用。
  2. 打开终端,执行以下命令(先运行带echo的版本确认目标文件,没问题再替换成删除命令):
# 先列出所有符合条件的低分辨率照片,确认无误再执行删除
find ~/Pictures/Photos\ Library.photoslibrary/Masters -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.heic" \) | while read file; do
    width=$(sips -g pixelWidth "$file" | awk '/pixelWidth/ {print $2}')
    height=$(sips -g pixelHeight "$file" | awk '/pixelHeight/ {print $2}')
    if [ "$width" -lt 2016 ] && [ "$height" -lt 1512 ]; then
        echo "$file"
        # 确认后去掉下面一行的注释,执行删除
        # osascript -e 'tell application "Photos" to delete (get media items whose filename is "'$(basename "$file")'")'
    fi
done
  1. 替换数值:把命令中的20161512改成你原版照片分辨率的一半,确保筛选准确。

重要注意事项

  • 操作前一定要备份:复制整个Photos Library.photoslibrary文件夹到外接硬盘,防止误删重要照片。
  • 调整分辨率阈值:根据你实际的原版照片分辨率修改筛选数值,比如如果原版是2732×2048,就把阈值改成1366×1024。
  • iPhone端的话,智能相册方法完全适用,操作逻辑和Mac一致,只是界面按钮位置略有不同。

内容的提问来源于stack exchange,提问作者Downgoat

火山引擎 最新活动