Как проверить файлы jpg (картинки) на целостность?

Есть большое количество изображений, которые необходимо (желательно пакетно) проверить на целостность, то есть не битые ли файлы. Как это можно сделать?
  • Вопрос задан
  • 6605 просмотров
Пригласить эксперта
Ответы на вопрос 5
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Грузить с помощью любой библиотеки обработки изображений (для PHP: GD, например) и определять размер изображений: если ошибка при загрузке или некорректные (не ожидаемые) размеры - то значит картинка "битая".
Ответ написан
Комментировать
GenuZ
@GenuZ
Долго искал варианты.

Есть кроссплатформенный вариант - ImageMagick:
magick.exe identify -verbose -regard-warnings "полный путь к картинке" | findstr 'identify:'

Если скачать другую сборку, то команда identify может быть вынесена в отдельную утилиту.

Или чисто виндовая консольная утилита jpegtest:
jpgtest.exe "полный путь к картинке"

Чтобы обработать пакетно, есть смысл нагородить что-нибудь с поиском файлов, передачей их имён программе и записью вывода.

Видел возможность отображения битых картинок в AntiDupl.NET, но это не её основной функционал.

Есть ещё одна gui-утилита для верификации, но она платная и больше не продаётся/не поддерживается - ImageVerify/ImageVerifier. А та демоверсия, что ещё скачивается со сторонних рессурсов - сканирует крайне малое ограниченное число файлов.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
Комментировать
comphome
@comphome
Занимаюсь восстановлением данных с флеше
А как быть с подобным софтом под Windу?
Ответ написан
Комментировать
moroz69off
@moroz69off
баннерМейкер№02
С какой целью интересуетесь?
Просто я хотел бы дополнить правильный ответ GenuZ. Вдруг вам нужно больше.

Там есть нюансы: если вам нужно обеспечить целостность изображений по причине собсттвенной РЕПУТАЦИИ, это одно, то ответ GenuZ правильный, ImageMagick (или подобный софт), должен работать на каждом уважающем себя сервере.
Если вам нужно обеспечить собственную БЕЗОПАСНОСТЬ, то это уже другой случай. Тогда читайте вот это, по вашему вопросу конкретно - Exploit protection, если вам пришлось интересоваться целостностью картинок со стороны безопасности, то не лишним будет все разделы почитать.

Микрософт ещё говорит вот что:
Важно!
Параметры выполнения файлов изображений позволяют указать только имя или путь файла, а не номер версии, архитектуру или любой другой дифференциатор. Будьте осторожны, чтобы нацелить смягчение последствий на приложения с уникальными именами или путями, применяя их только на устройствах, где вы протестировали эту версию и архитектуру приложения.

Удачи вам! И безопасных облаков!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы