我注意到 Shotwell 已经将许多图像导入了两次(例如从我的相机 SD 卡)。显然重复检测有缺陷一旦导入照片,就标记,然后重新导入。
我在设置中启用了“写入元数据标签”。如果我导入照片test-images.jpg
并为其添加标签,该照片将不是再次导入同一文件时,重复检测会将其识别出来。第二次导入文件时,将test-images-1.jpg
根据活动规则对其进行命名并放置在库文件夹中(不一定放在同一个文件夹中)。
test-images.jpg
并且test-images-1.jpg
将具有相同的图像数据,但由于添加的标签/元数据,文件不再相同,并且不会通过搜索重复项(例如 md5 哈希)来拾取。
我的造成多次重复的使用场景如下:
- 我用手机拍照
- 我从手机导入照片,添加标签,但将图像保留在手机上,因为我想保留它们以便于分享等。
- 我为导入的照片添加了更多标签
- 几周后,我重复手机上的导入步骤,已经导入的旧照片将再次导入(添加了“-1.jpg”或“-2.jpg”)
如何清除重复项?
使用基于文件名的搜索是可能的,但我不能排除我没有导入以 结尾的文件,-1
该文件未被导入为重复文件。
我该如何清理我的照片库?我尝试使用 Shotwell 中的搜索功能,但对于超过 1000 张照片,肯定有一种更好、更可靠、更不容易出错且更简单的方法。
我并不担心标签丢失,通常第二次导入(重复)没有应用标签。
答案1
有点像垃圾邮件,但几个月前我发现自己也遇到了同样的问题,于是我编写了一个小实用程序来实现这一点:
https://github.com/jesjimher/imgdupes
这是一个 python 脚本,用于扫描目录树以查找重复项。它的语法有意与 fdupes 相似,不同之处在于 imgdupes 会忽略所有元数据并仅分析 JPEG 文件的图像数据块。这意味着即使物理文件不同(因此不会被 fdupes/shotwell 检测为重复项),同一图像的两个不同版本(具有不同的标签、旋转标志、日期等)也将被报告为重复项。
它最近被重命名为 jpegdupes,现在在 Pypi 存储库中,因此扫描树以查找重复的图像可以像这样完成:
sudo pip install jpegdupes jpegdupes -d ~/Photos/
(或者任何你的路径)
它会寻找实际上是同一张图片的 JPEG(仅在元数据上有所不同),并以交互方式显示差异并询问保留哪个版本。
希望能帮助到你。
答案2
几周前我遇到了同样的问题。我找到的解决此问题的方法很简单但很有效:在 Shotwell 中,创建一个新的已保存搜索,显示所有未标记且文件名以“_1.jpg”结尾的图片。然后,您可以删除 Shotwell 为此次搜索列出的所有文件,但要小心,先备份 ;-) 就我而言,我删除了 2000 多张图片!
答案3
您可以将标记的文件复制回手机,这样它们就不再不同了?我认为 Shotwell 应该能够处理自己的标记,而这对我来说确实是一个错误。我遇到了类似的问题,但 Shotwell 每次运行时都会重新开发相机原始文件。
答案4
我遇到了同样的问题,通过将 Shotwell 中的所有图像导出到另一个文件夹解决了这个问题。即使您有重复,Shotwell 也只会显示一次。例如,我的文件夹中有 64K,但 Shotwell 只显示 32K。所以我选择全部并导出,保留大小、名称、元数据等。唯一的缺点是:如果您的文件夹结构很复杂并且想要保留它 - 此解决方案可能不适合您。我现在将所有内容都放在一个文件夹中。顺便说一句,这个错误现在似乎已经修复了。