Я люблю упорядоченность. Не просто порядок вообще, а именно упорядоченность - когда бардак разложен аккуратными стопками. И регулярно посвящаю некоторую часть воего времени на то, чтобы сложить эти самые стопки, в том числе периодически пытаюсь навести порядок на своих жестких дисках. А с тех пор, как их емкость стала измеряться терабайтами, задача превратилась в нетривиальную.
За годы жизни в интернете у меня скопилось преизрядное количество различных картинок - красивые пейзажи, рисунки известных художников, интересные текстуры... И с годами эти картинки стали дублироваться и занимать полезное место на диске. Когда их было мало, можно было сравнить их на глаз или найти файлы одинакового размера. Но когда их много, это уже непросто.
Поскольку существуют специальные программы для поиска дубликатов файлов, я и решил их использовать. Очень удобная программа DupKiller помогла найти все совпадающие файлы с разными именами, причем не только с изображениями. Но главная сложность не в одинаковых файлах, а в различающихся. Когда одна и та же картинка оказывается в четырех разных папках, причем все четыре копии имеют различное разрешение, то побайтное сравнение не помогает. И я начал экспериментировать с программами, ищущими копии изображений, с учетом несовпадающих размеров и небольших отличий в картинках.
Сначала я испробовал уже неоднократно применявшийся мной Dup Detector от Prismatic Software. Он просканировал 70 тысяч файлов, потратив на это несколько часов, и показал много-много черных экранов - в папке с клипартами нашлось несколько тысяч wmf-ок, которые Dup Detector считает совершенно черными. А при увеличении числа выводимых дубликатов программа стала падать. Вторым был ImageDupeless - программа, ссылку на которую Гугл в ответ на запрос «поиск дубликатов изображений» выдает первой. К сожалению, она себя не оправдала - сканировала быстро, список дубликатов формировала корректно, но рушилась с ошибкой при пролистывании списка. Правда, при перезапуске сообщала, какой файл вызвал проблему в прошлый раз.
Следующей стала AntiDupl. В ней обнаружился тот же недостаток, что и в Dup Detector'е, хотя и с другим типом файлов. AntiDupl воспринимает прозрачный цвет в gif-ах как черный и все гифки с черным изображением на прозрачном фоне, которых оказалось весьма много в папке с клипартом, были отображены программой как здоровые черные квадраты. Кроме того, программа выводит пару изображений, но не выводит общий список дубликатов, и если нажать «Пропустить», то чтобы еще раз сверить пропущенные изображения, придется перезапускать сканирование.
Затем я попробовал Pixels от ByteSurge. Это просмотрщик графики, но функция поиска совпадающих изображений у него тоже есть. Однако его скорость работы настолько оставляла желать лучшего, что им мне так и не удалось воспользоваться. Но я счел, что мысль-то хорошая, и обратил внимание на программы просмотра графики, имеющие такую функцию. Обычно в качестве просмотрщика я применяю XnView - программу, которая может делать все. Если бы в ней была функция непосредственного рисования на изображении, ей можно было бы заменять Photoshop, тем более, что фотошоповские плагины к ней подключаются. К моему большому разочарованию, и она упала при формировании списка повторяющихся изображений. На самом деле, не ее в том вина - я сам не прав, что каждый раз пытался просканировать все изображения за раз, начиная с корневой папки изображений. Но иначе часть дубликатов осталась бы за бортом.
Вспомнив, что Гугл позволяет не только искать что-либо в интернете, но и еще и программу просмотра изображений сделал, я запустил Picasa. В меню «Инструменты»-«Экспериментальные» есть функция просмотра повторяющихся файлов. Но в отличие от всех прочих программ, выдававших результат в виде пар изображений, с информацией об их разрешении и размере файлов, Picasa просто вывалила все повторяющиеся изображения одним большим списком без малейшего упорядочивания. Мотать список вверх-вниз и пытаться найти в нем одинаковые файлы, чтобы сравнить их поподробнее уже через Проводник, мне надоело файле на третьем. Кроме того, часть файлов, которые были сочтены повторяющимися всеми другими программами, Picasa не заметила.
Я сделал еще одну попытку с DupKiller, выключив поиск совпадающих файлов по всем параметрам, кроме поиска с использованием плагина сравнения изображений. Через три часа работы было просмотрено целых 0,2% файлов, и мне снова надоело. Но прежде чем развернуть папку с изображениями в один список и начать искать повторы глазами, я решил дать последний шанс Dup Detector'у, предварительно переложив все wmf в другую папку. И тут-то поиски мои увенчались успехом, поскольку программа без падений, хотя и без излишней спешки вывела все повторы среди 67 тысяч файлов. Конечно, в некоторых случаях приходится сверять файлы на глаз через XnView, потому что окошки предпросмотра у Dup Detector'а не такие уж и большие - но больше, чем у любой другой опробованной мной программы. Так что отложи я wmf-ки в другую папку пораньше, то смог бы сэкономить много времени и сил, потраченных на поиски.
Но все эти программы предназначены для Win32. А вот кто бы посоветовал аналогичную программу для поиска дубликатов изображений под Linux? Работу какой-либо из этих программ под Wine я не проверял, а ставить Windows в виртуальной машине, чтобы установить Dup Detector и проверить, не скачал ли я картинку, которая у меня уже есть - немножко перебор.