Если вы говорите о файлах 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 , или страницей , посвященной проверке данных , в которой описано использование DNG-конвертера Adobe для пакетной проверки проприетарных форматов RAW. (К сожалению, это операция с графическим интерфейсом, которая не обязательно легко скриптируется.)
Если у вас есть камера, которая изначально выводит версию DNG 1.2, это даже лучше, поскольку она включает в себя встроенную контрольную сумму MD5 данных изображения. К сожалению, это, кажется, не хранится с обычными метаданными изображения - или, по крайней мере, exiftool и exiv2 не распознают его, и они вообще читают файлы 1.2 DNG - это означает, что, насколько я знаю, в настоящее время проверка Adobe инструмент - единственный способ воспользоваться этим тоже.