Если вы говорите о файлах JPEG, то утилита jpeginfo - это именно то, что вы ищете. Он может проверять файлы на наличие различных типов ошибок JPEG и повреждений и либо возвращать код ошибки (наиболее полезная вещь для сценариев), либо просто удалять файлы с ошибками.
Я использую это как часть моей первоначальной передачи файлов, чтобы убедиться, что все скопировано нормально, не полагаясь на ручную проверку. (После этого я проверяю, чтобы их контрольные суммы не менялись как часть моей обычной защиты резервного копирования / защиты от битрота.)
Программа является командной строкой и поставляется в виде исходного кода, но ее должно быть легко собрать и использовать в любом дистрибутиве Linux или на Mac с правильно настроенной средой разработки. Я уверен, что вы могли бы даже сделать это на Windows с Cygwin или MinGW. (Например, хотя я не могу ручаться за его целостность, это сообщение в блоге кажется законным и включает в себя предварительно скомпилированную загрузку.) Чтобы создать его самостоятельно:
$ git clone https://github.com/tjko/jpeginfo.git
Cloning into 'jpeginfo'...
[...]
Checking connectivity... done
$ cd jpeginfo/
$ ./configure && make
Это должно создать команду jpeginfo
, которую вы можете запустить на месте или скопировать в любое место (возможно, используя make install
).
Затем вы запускаете это так:
$ ./jpeginfo -c *.jpg
test1.jpg 1996 x 2554 24bit Exif P 6582168 [OK]
test2.jpg 1996 x 2554 24bit Exif P 6582116 Premature end of JPEG file [WARNING]
test3.jpg Corrupt JPEG data: 1 extraneous bytes before marker 0xe2 1996 x 2554 24bit Exif P 6582169 [WARNING]
Здесь test1.jpg в порядке, и test2.jpg Я удалил несколько байтов с конца, а test3.jpg Я изменил несколько случайных байтов в заголовке.
Если у вас есть RAW-файлы, посетите эту страницу у Американского общества медиа-фотографов по DNG Validation или по сведениям о проверке данных , которые охватывают использование конвертера DNG Adobe для пакетная проверка проприетарных форматов RAW. (К сожалению, это операция с графическим интерфейсом, которая не обязательно легко скриптируется.)
Если у вас есть камера, которая изначально выводит версию DNG 1.2, это даже лучше, поскольку она включает встроенную контрольную сумму MD5 данных изображения. К сожалению, это, кажется, не хранится с обычными метаданными изображения - или, по крайней мере, exiftool и exiv2 не распознают его, и они вообще читают файлы 1.2 DNG - это означает, что, насколько я знаю, в настоящее время проверка Adobe инструмент - единственный способ воспользоваться этим.