Recibí un conjunto de fotografías de un fotógrafo y necesito confirmar que los archivos JPEG no se guardaron como JPEG progresivos. Tengo Adobe Bridge y Photoshop. ¿Cómo puedo comprobarlo?
Respuesta1
Algunos métodos simples:
- ImagenMagia— En la línea de comando, ejecute:
identify -verbose mystery.jpg | grep Interlace
el resultado será “Interlace:JPEG” o “Interlace: Ninguno”.- Photoshop- Abrir documento. Seleccionar
File -> Save for Web & Devices
.
Si es un jpeg progresivo, se seleccionará la casilla Progresivo.- Cualquier navegador— Los archivos JPEG de referencia se cargarán de arriba a abajo y los archivos JPEG progresivos harán otra cosa. Si el archivo se carga demasiado rápido, es posible que deba agregar una limitación del ancho de banda. Yo uso ipfw en mi Mac.
Métodos programáticos
VerificarDetección de JPEG progresivo. El autor publica enlaces a varios scripts que la gente ha desarrollado:
Se pueden utilizar un par de bytes de identificación para reconocer los archivos. Un JPEG progresivo basado en DCT se puede identificar mediante los bytes "0xFF, 0xC2". Además, las imágenes JPEG progresivas suelen contener múltiples escaneos, por lo que puede buscar un par de coincidencias de "Inicio de escaneo" (bytes: "0xFF, 0xDA"). El autor utilizó un comando Bash simple para obtener resultados precisos:
>grep -c -P “xffxc2″ progressive1.jpg
>1
>grep -c -P “xffxc2″ progressive2.jpg
>1
>grep -c -P “xffxc2″ baseline1.jpg
>0
>grep -c -P “xffxc2″ baseline2.jpg
>0
>grep -c -P “xffxDA” progressive1.jpg
>6
>grep -c -P “xffxDA” progressive2.jpg
>12
El enlace también contiene otras herramientas útiles.
Actualizar
La trama se complica (gracias al usuario PussInBoots por alertarme para que profundice más). La pregunta preguntaba cómo saber si un JPEG erasalvadocomo progresista.
"Guardado como" parece tener un significado flexible. Experimenté y descubrí que, en algunos casos, guardar como progresivo significaba solo que se cambiaba el parámetro de metadatos (entrelazado), pero el archivo en realidad no se modificaba para contener escaneos progresivos. Entonces, el archivo contiene una sola imagen y se le indica al software de renderizado que lo trate como una imagen progresiva.
La forma en que estos archivos progresivos "falsos" se manifiestan en las pruebas descritas anteriormente:
InageMagick: El parámetro Interlace se lee como "JPEG" en lugar de "Ninguno".
Photoshop: La única versión de Photoshop que tenía disponible es la antigua (versión 7.0). En el cuadro de diálogo Guardar para Web, la
Progressive
casilla estaba marcada previamente en estos archivos, pero no para los JPEG estándar.Navegador: Mi sistema y mi conexión a Internet son demasiado rápidos para que esta sea una prueba útil. En condiciones normales, todo es lo suficientemente cercano a instantáneo como para no poder diferenciar de manera confiable ninguna diferencia.
Identificación de bytes: Este parece ser un indicador más fiable. Los archivos JPEG progresivos "falsos" no tenían ninguno de los patrones de bytes de identificación.
Entonces, a la pregunta original, si alguna de las pruebas anteriores indica que el archivo esnoun JPEG progresivo, puedes estar seguro de que no lo es. Sin embargo, los "métodos simples" anteriores no parecen diferenciar de manera confiable los archivos JPEG progresivos verdaderos de los "falsos", por lo que no puede confiar en ellos para saber si un archivo JPEGesrealmente progresista. De hecho, PussInBoots informa en el comentario que Photoshop CS6 parece tener una opción predeterminada como "progresiva", por lo que su configuración inicial no le dice nada sobre el archivo existente.
Respuesta2
Si estás en Unix, usa el file
comando:
$ file image.jpg
image.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], progressive, precision 8, 2000x1200, components 3