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.
ImageVerifier hizo lo que querías. Desafortunadamente, ya no está disponible para descargar y el soporte se suspendió el 31 de diciembre de 2017 (consulte Ingestamatic e ImageVerifier ya no está a la venta ).
Antigua respuesta por razones históricas
ImageVerifier (IV para abreviar) atraviesa una jerarquía de carpetas en busca de archivos de imagen para verificar. Puede verificar TIFF, JPEG. PSD, DNG y no-DNG raws (por ejemplo, NEF, CR2).
IV está diseñado para procesar grandes cantidades de imágenes. Las jerarquías de carpetas con 100,000 imágenes o más no deberían ser un problema. En una prueba, IV corrió durante 14 horas.
Hay dos tipos de verificación que realiza IV: verificación de estructura y verificación hash.
http://basepath.com/site/detail-ImageVerifier.php
fuente
Si no se trata de descargar imágenes de su cámara, sino de una transferencia de computadora a computadora, un enfoque común para la integridad de los archivos son las sumas de verificación .
Desafortunadamente, hasta donde yo sé, los formatos de imagen comunes de "usuario final" (jpeg, png, gif, ...) no se verifican por sí solos. Pero, según tengo entendido, la cuestión de implicar un procesamiento automatizado, la integración de herramientas de suma de verificación ( CRC32 , MD5 , ...) en el flujo de trabajo podría ser una solución viable. Un enfoque común para almacenar la suma de control es tener un archivo con el mismo nombre de archivo, sólo con una extensión añadida, como:
img123.jpg → img123.jpg.md5
.Este enfoque tiene el beneficio adicional de que también puede verificar la integridad de (por ejemplo) archivos de sidecar o cualquier otra cosa que desee transferir en un mecanismo similar. Y si mantiene los archivos de suma de comprobación, incluso en el futuro. (Y tiene el inconveniente de no estar integrado en PS, LR u otras herramientas comunes en la medida de mi conocimiento limitado).
fuente
Desarrollé check_media_integrity un simple script de Python
check_mi.py
, puedes descargarlo desde GitHub:https://github.com/ftarlao/check-media-integrity
Cito la introducción de la guía:
fuente
La respuesta aceptada se refiere al uso de jpeginfo, que es una herramienta realmente antigua y no mantenida escrita en C (y tampoco muy modular / extensible). Además, esa herramienta parece solo buscar algunos puntos de datos EXIF específicos (hojear el código fuente durante ~ 5 minutos).
IMO, una mejor herramienta llamada tipo de archivo , es muy fácil de usar: básicamente copie y pegue su código de ejemplo y modifique el nombre del archivo si no sabe cómo codificar. Comprueba los números mágicos asociados con ciertos tipos de archivos conocidos y le permite saber con qué tipo de archivo está tratando.
Todavía estoy buscando más capas de protección que solo esto. Por ejemplo, si los datos arbitrarios se almacenan más allá (o en) los metadatos EXIF, o después de los números mágicos, eso puede plantear problemas de seguridad. Continuaré buscando más medidas de seguridad y espero actualizar esta respuesta más tarde.
Aquí está el código de ejemplo copiado de su página web, para los perezosos:
Para su información, esta herramienta se actualiza constantemente (hace 3 días era la última actualización, a partir de mi respuesta original aquí), y actualmente tienen 3.691.850 descargas semanales, por lo que probablemente sea una buena indicación.
fuente
file
(que funciona de la misma manera) informará correctamente, pero no se procesará porque faltan muchos de los datos.