Si está hablando de archivos JPEG, entonces la utilidad jpeginfo es exactamente lo que está buscando. Puede verificar los archivos para detectar diferentes tipos de errores JPEG y corrupción y devolver un código de error (lo más útil para las secuencias de comandos) o simplemente eliminar archivos con errores.
Lo uso como parte de mi transferencia de archivos inicial, para asegurarme de que todo se haya copiado correctamente sin depender de la verificación manual. (Después de eso, me aseguro de que sus sumas de verificación no cambien como parte de mi protección normal de respaldo / bitrot).
El programa es de línea de comandos y viene como código fuente, pero debería ser fácil de construir y usar en cualquier distribución de Linux o en una Mac con un entorno de desarrollo configurado correctamente. Estoy seguro de que incluso podría hacerlo en Windows con Cygwin o MinGW. (Por ejemplo, aunque no puedo garantizar su integridad, esta publicación de blog parece legítima e incluye una descarga precompilada). Para construirlo usted mismo:
$ git clone https://github.com/tjko/jpeginfo.git
Cloning into 'jpeginfo'...
[...]
Checking connectivity... done
$ cd jpeginfo/
$ ./configure && make
Esto debería crear un jpeginfo
comando que puede ejecutar en su lugar o copiar donde desee (posiblemente usando make install
).
Luego, lo ejecutas así:
$ ./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]
Aquí, test1.jpg está perfectamente bien, y test2.jpg borré algunos bytes del final, y test3.jpg cambié algunos bytes aleatorios en el encabezado.
Si tiene archivos RAW, consulte esta página de la American Society of Media Photographers sobre Validación de DNG , o una sobre detalles de validación de datos , que cubre el uso del convertidor DNG de Adobe para validar por lotes formatos RAW patentados. (Desafortunadamente, esta es una operación de GUI y no necesariamente fácilmente programable).
Si tiene una cámara que genera de forma nativa la versión 1.2 de DNG, eso es aún mejor, ya que incluye una suma de comprobación MD5 incorporada de los datos de la imagen. Desafortunadamente, esto no parece estar almacenado con los metadatos de la imagen normal, o al menos exiftool y exiv2 no lo reconocen, y leen 1.2 archivos DNG en general, lo que significa que, hasta donde sé, actualmente la validación de Adobe la herramienta es la única forma de aprovechar eso también.