### История создания #### Предварительный этап Программа имеет уже достаточно длинную историю. Началось все летом 2002 года, когда я увлекся скачиванием обоев для рабочего стола из интернета. При этом мне пришлось столкнуться с проблемой наличия большого числа дублирующих и поврежденных картинок. В начале я пытался очистить свою коллекцию вручную. Однако, при наличии более 10 тысяч изображений, это оказалось настолько трудной задачей, что я задумал как-то автоматизировать данный процесс. В то время я учился в аспирантуре ИФ НАНБ, шли летние каникулы. Поэтому в виду наличия у меня свободного времени и желания (я как раз осваивал C++Builder), я решил самостоятельно создать соответствующую утилиту. После пары месяцев работы появилась программа BEJpegSearch (Bad and Equal JPEG-files SEARCH), которую я затем использовал для собственных нужд на протяжении года. Одновременно проходила ее доводка до ума. #### Серия AntiDupl-1.x К осени 2003 года программа стабилизировалась, и у меня после ряда положительных отзывов от моих знакомых созрело решение выложить ее в интернете для всеобщего пользования. При этом мне пришлось поменять название на AntiDupl, так как старое было трудно произносимым и не запоминающимся. 17.10.2003 вышла первая публичная версия - 1.15. Далее серия с минимальными изменениями просуществовала до ноября 2005, когда вышла последняя версия с номером 1.17. Все программы серии имели следующие ключевый особенности: Поиск похожих и поврежденных JPEG-картинок в заданном каталоге. Возможность автоматического удаления полностью идентичных и поврежденных картинок. В основном поиск ведется в полуавтоматическом режиме - до первого нахождения дефектной либо дублирующей картинки. После чего поиск прерывается запросом для того, что бы пользователь мог выбрать дальнейшее действие программы. Простой, и даже можно сказать минималистический, интерфейс. Подробнее о ней можно почитать здесь. Не смотря на ряд достоинств, программа обладала существенными недостатками: Невозможность искать другие, отличные от JPEG, форматы изображений. Полуавтоматический режим работы фактически полностью невелировал высокую скорость работы программы, и кроме того утомлял пользователей. Программа не учитывала при своей работе результаты предыдущих поисков. Было не возможно задавать более одного каталога поиска. Минималистический интерфейс нравился далеко не всем. #### Серия AntiDupl-2.x Сразу после выхода AntiDupl-1.17 я стал работать над новой версией программы. В ней я надеялся решить многие из перечисленных выше проблем. К тому моменту я уже достаточно долго занимался программированием, и мне хотелось переписать программу с учетом приобретенного опыта. 09.04.2006 через пять месяцев работы она была полностью завершена, и вышла под номером 2.0. Фактически программа была написана заново, положив основу новой 2-й серии. Здесь находится ее подробное описание. Ниже приведены ключевые новшества этой серии: Поддержка поиска изображений в форматах GIF, TIFF, BMP и PNG. Улучшенный интерфейс. Появились "горячие" клавиши. Наличие html-справки. Логирование основных этапов и результатов поиска. Отложенные запросы (результаты поиска показываются после его окончания). Возможность удаления обеих картинок, замещения одной картинки другой, просмотра изображения внешними средствами (начиная с версии 2.2). База данных о неправильных срабатываниях программы (начиная с версии 2.4). Не смотря на существенный прогресс второй версии по сравнению с первой, в ней оставались нерешенными многие из перечисленных выше проблем. А другие были решены лишь частично, кроме того выяснились дополнительные недостатки. С точки зрения пользователей основные из них были: Неудобная обработка результатов поиска. Невозможно эти результаты сохранить. Невозможно задавать более одного каталога поиска. Нет возможности сравнения отдельных файлов. Поиск каждый раз нужно проводить заново (не учитываются результаты прошлых поисков). Еще были недостатки с технической точки зрения: 1-я и 2-я версии были написаны на C++Builder, а данная система достаточно устаревшая. В ней, например, нет поддержки Unicode, и неизвестно когда будет. Программа однопоточная, что делает затруднительным использование возможностей современных процессоров. Желательно разделение алгоритмической и интерфейсной части программы. Это упростило бы создание новых версий. Кроме того позволило бы сторонним разработчикам использовать в своих проектах алгоритмы AntiDupl. #### Серия AntiDupl.NET-1.x Решить выше указанные проблемы удалось только в рамках абсолютно новой программы, получившей название AntiDupl.NET. Работы над ней начались в сентябре 2007 года. Но из-за большого объема работ, а также из-за сложившихся обстоятельств, процесс ее разработки неприлично затянулся почти на полтора года. Тем не менее она наконец таки увидела свет...