cross browser - tamaño - Incompatibilidades entre navegadores en la decodificación de archivos JPEG?
tamaño de fotos para pagina web (4)
Algo me deja perplejo: ¿por qué esta imagen aparece diferente en cada navegador?
Imagen en IE9 (y Windows Photo Viewer):
Imagen en Firefox (y Photoshop):
Imagen en Chrome (e Irfanview):
¿Qué está pasando en sus procesos de decodificación de JPEG para hacer que el resultado final sea tan diferente?
(Véalo en IE, Firefox, Chrome, etc. para ver a qué me refiero).
JPEG puede codificarse en RGB o CMYK. Estas características usualmente ocurren cuando es CMYK. Abra el archivo en un programa de edición de imágenes y guárdelo como JPEG RGB, y salude a las impresoras CMYK, que ahora tendrán los diferentes resultados que tenía previamente en el navegador.
Si cambia el perfil de color de esa imagen particular de CMYK a sRGB en Photoshop, por ejemplo, aparecerá más o menos por igual en todos los navegadores.
Solo estoy adivinando.
Si la imagen fue creada para mostrar estas diferencias, tal vez no sea una imagen normal que fue codificada, sino una inválida en la que los colores calculados están fuera del rango de 0 a 255 y diferentes decodificadores manejan esto de manera diferente.
JPEGSnoop (fuente ahora disponible @ sourceforge) informa un gran desbordamiento de luma incluso antes de que lleguemos a la conversión de Y''CbCr a RGB. Obtengo estos errores en algunos otros archivos, pero el desbordamiento suele ser pequeño: 256 o 257 frente a un máximo de 255. ¡La luma calculada aquí es 729!
Los comentarios del autor de JPEGSnoop sobre el desbordamiento de YCC:
Recorte de YCC en DC: cada MCU agrega o resta del valor de CC (promedio) en la MCU anterior. Estos deberían permanecer dentro de un rango de 8 bits, pero la corrupción en el coeficiente de DC puede causar que este valor se desvíe fuera del rango. Este tipo de error provocará cambios repentinos a gran escala en el color o el brillo en su imagen. Como este tipo de error generalmente no se recuperará, JPEGsnoop solo informará los primeros 10 de estos en el archivo de registro.
No estaba familiarizado con el DC inter-MCU, pero coinciden Pennebaker y Mitchel.
*** Decoding SCAN Data ***
OFFSET: 0x00000160
Scan Decode Mode: Full IDCT (AC + DC)
Scan Data encountered marker 0xFFD9 @ 0x00027CA9.0
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 729, 109, 171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 682, 109, 172) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 741, 109, 173) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 629, 109, 174) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 841, 109, 175) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 319, 109, 176) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 928, 109, 177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 0, 0) YCC=( 624, 109, 177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 1, 0) YCC=( 785, 107, 171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=( 1, 0) YCC=( 559, 107, 171) Y Overflow @ Offset 0x00027CA8.2
Only reported first 10 instances of this message...