Я получил большой набор изображений. Некоторые в оттенках серого, другие в цвете. Все они в смеси tiff, png, jpeg и т. д... Они все на моем локальном диске.
Моя цель — разделить эти изображения по цветовой палитре (только оттенки серого или полностью цветные), по размеру изображения (ширина и высота), по размеру файла и т. д. в разные каталоги.
Нет никаких требований к порядку обработки, поскольку мне требуется фильтрация путем применения and
всех правил, которые я хочу. Т.е. только изображения, которые соответствуют всем критериям.
Как это автоматизировать?
решение1
ExifToolдолжен соответствовать вашим требованиям. Эточрезвычайномощный, поддерживает огромное количествотипы файловиМета-теги, и позволяет использовать сложные условные выражения Perl и файлы конфигурации на основе тегов и различных других критериев. Я бы посоветовал вам прочитатьдокументацияполностью, особенноразделпосвященный переименованию файлов и созданию целевых каталогов на основе критериев, указанных пользователем. Наконец, если вы когда-нибудь запутаетесь или застрянете, то размещайте наФорумобязательно вам поможет, так как разработчик и сообщество очень отзывчивы.
В качестве небольшого и довольно простого примера следующая команда переместит все распознанные файлы изображений, которые имеютилиширина 1024pxиливысота 480pxи(в обоих случаях) файл размером менее 200 КБ в каталог (который будет создан при необходимости) с именем Moved
:
exiftool -if "((($ImageWidth==1024) || ($ImageHeight==480)) && ($FileSize#<204800))" -directory=Moved *.*
Примечание: Здесь за $ следует имя тега, а # может быть добавлено для отключения преобразования печати (т. е. для использования числового формата для размера файла вместо понятного человеку формата, такого как КБ, МБ и т. д.). Опять же, все это объяснено в документации.