整理图片(或任何文件)

时间:2008-12-10 20:04:55

标签: ruby image

这有点紧张,但我有一个有趣的(对我而言)编程(错误...脚本编程?算法?组织?)问题。 (我在Ruby中标记这个,因为我更喜欢使用Ruby来编写脚本。)

想象一下,你有100千兆字节的图片漂浮在多个驱动器上。可能总共有25千兆字节的独特图片。其余的是重复项(具有相同的文件名),重复项(具有不同的名称)或更小版本的图片(导出用于电子邮件)。当然,除了这些在多个驱动器上,它们也在不同的文件夹结构中。例如,img_0123.jpg可能存在(在Windows世界中)为c:\ users \ username \ pics \ 2008 \ img_0123.jpg,c:\ pics \ 2008 \ img_0123.jpg,c:\ pics \ export \ img_0123- email.jpg和d:\ pics \ _ europe_2008 \ venice \ bungy_jumping_off_st_marks.jpg。

在我们过去必须将所有东西都放在文件夹中的那一天,并将它们重命名为很少的名字(如上所述)。今天,搜索和标记处理所有这些并且是多余的(并且使其难以组织)。

在过去,我尝试将所有内容移动到一个驱动器,编写一个ruby脚本来扫描重复项(我不相信那些dupfinder程序 - 我运行了一个,它开始删除所有内容!),并尝试重新组织它们。但是,几天后,我放弃了(关于组织和手动删除部分)。

我即将开始一个新的想法。首先将所有驱动器中的所有图片复制到一个新文件夹中的新驱动器上。需要手动检查具有重复文件名的任何内容。然后启动Picasa,手动扫描文件并自行删除重复项(使用好的ol'noggen)。

然而,我非常不满意我不能轻易地以编程方式解决这个问题,并且有兴趣听一些其他解决方案,无论是以编程方式还是其他方式(也许编写代码不是最好的解决方案,喘息!)。

3 个答案:

答案 0 :(得分:5)

我喜欢按照拍摄日期对照片进行排序,所以我写了一个groovy脚本来查看图片的EXIF数据,并将它们放入ISO日期格式的目录中(2008-12-11)。它使他们井井有条。虽然它没有根据内容解决标记问题,但我使用flickr。

对于复制问题,校验和会减少您必须手动排序的图像数量,但不幸的是它不会拾取已调整大小的图像。你可以寻找一个不那么糟糕的骗子查找器,一个不会自动删除重复项?确保在测试之前进行备份:p

答案 1 :(得分:2)

您是否考虑过对每个文件进行md5校验和并以这种方式确定重复项?如果您这样做,则无需手动解决重复项。

我会检查每个文件,并根据已处理文件的字典进行检查。如果它变成副本,我会将其拍摄到重复目录而不是完全删除它。

答案 2 :(得分:1)

你可以使用类似Exiftool的东西来确保Windows根据CaptureTime(这是我自己的方案)或任何其他可以在JPG或RAW文件中找到的Exif参数重新组织你的图片。您将能够非常轻松地找到重复项。