¿Son las rotaciones de "Windows Photo Viewer" sin pérdidas?

¿Puedo rotar fotos comprimidas con pérdida que veo en Windows Photo Viewer sin preocuparme por perder aún más información con la compresión?

¿Por qué no lo intentas? Copia una imagen. Gire varias veces y vea si sale idéntico. Me di cuenta, por ejemplo, que con Picasa los archivos pierden un 20 % de tamaño después del primer giro de 90 grados. Por otro lado, simplemente puede obtener un software con esa característica explícita. (PMView Pro es mi favorito ya que es muy eficiente y súper rápido, también es barato: pmview.com )
@Itai: lo he intentado y el tamaño aumenta después de girar y volver. Sin embargo, eso no significa que la información se pierda.
¿Por "Windows Photo Viewer" te refieres al visor predeterminado que viene con Windows 7?
@Matt Grum: Sí.
@Matt Grum: Se instaló en Program Files\Windows Photo Viewermi Acer Aspire con Windows 7.
¡Más grande! Eso es extraño, pero no estoy del todo sorprendido dado el proveedor de ese software;) Al menos existe la posibilidad de que no tenga pérdidas. Lo que necesita confirmar es una herramienta de diferencia de imagen. Esos son simplemente software que le muestran la diferencia entre dos imágenes y comparan la imagen original y rotada.
Tenga en cuenta que, hasta donde yo sé, una rotación de 90 grados (y 180, 270) no tiene pérdidas en sí misma porque es un intercambio de coordenadas x e y (otros ángulos requieren interpolación). Entonces, cualquier pérdida atribuida a la transformación proviene de la recompresión. Puede evitar este recálculo guardando la imagen transformada en un formato sin pérdidas, pero eso claramente no es parte de su pregunta, por lo que no lo sugeriré.
@horatio, los múltiplos de 90 grados son un caso especial para la compresión JPG, donde es técnicamente posible rotar la imagen sin un ciclo de compresión "simplemente" reorganizando los datos comprimidos. Implica eliminar y aplicar una capa de compresión sin pérdida, por lo que el tamaño del archivo puede cambiar, pero no se requieren operaciones con pérdida.
Creo que lo entiendo, pero mi punto es que jpeg es un formato de almacenamiento en disco y no tiene ninguna relación con la calidad de las transformaciones en sí. Es decir, aunque a menudo se habla de trabajar con jpegs, etc., mientras el archivo se muestra en pantalla y se manipula, no es un jpeg.
Hombre, SIEMPRE he querido saber la respuesta a esta pregunta. En mi opinión, DEBERÍAN serlo. Pero lo más probable es que se deba al estándar JPEG... No creo que sea técnicamente posible hacer esta operación sin pérdidas.
El visor de imágenes de Google Picasa NO tiene pérdidas. pero engaña. no gira la imagen. simplemente marca en los metadatos "mostrar esta imagen girada".
el cambio de tamaño de archivo es sospechoso. no tengo win7 alguien debería hacer una diferencia de imagen: el resultado debería ser completamente en blanco y negro (asegúrese de verificar que no haya valores pequeños).
¿Picasa cambió eso recientemente? Cuando trabajé en Google hace un año y medio, en realidad le pregunté al arquitecto principal sobre eso y la respuesta fue que primero marcaron la imagen como rotada pero luego hicieron la rotación (lo que redujo el tamaño de la imagen) cuando se aplicaron las ediciones no guardadas.
Para mí, si elimina el archivo .meta (que se crea junto a la imagen), el visor de picasa muestra la foto como sin girar. entonces ya ... no está girando la imagen, sino que solo ve en los metadatos "mostrar como girado".
También me interesa saber si rotar una foto de iPhone da como resultado un JPG recomprimido. Las respuestas anteriores realmente no ayudan ... ¿por qué diablos el visor de fotos integrado de Windows 7 todavía no puede manejar la información de rotación? Cualquier otro programa o plataforma está presentando la foto correctamente en función de la información del encabezado.
(i) Picasa almacena información de transformación de imágenes en .picasa.iniarchivos. Elimine el archivo y reinicie picasa, notará que las imágenes que se rotaron con picasa ya no se rotan. (ii) la aplicación de visor de fotos de Windows 10 parece alterar los metadatos: el tamaño del archivo sigue siendo idéntico.

Respuestas (1)

Si las dimensiones de la imagen son múltiplos de 8 (o 16 si se usa el submuestreo de croma), las rotaciones no tienen pérdidas. De lo contrario, no es posible rotar la imagen sin volver a calcular los bloques, es decir, volver a comprimir la imagen, que tiene pérdidas.

La razón de esto es que las imágenes jpeg se dividen en una serie de bloques de 8x8 o 16x16 que se comprimen individualmente. Los bloques incompletos solo se permiten en el borde derecho y el borde inferior. Por lo tanto, si su imagen no es un múltiplo exacto de 8/16, contendrá bloques incompletos, que terminarán en el borde incorrecto después de la rotación.

Verifiqué la afirmación anterior usando la versión de Windows Photo Viewer que viene con Windows 7. Usé dos imágenes de ruido de color. Una imagen era de 256x256, es decir, ambos tamaños eran múltiplos de 8. La otra imagen era la misma pero recortada a 253x253, es decir, ningún tamaño era múltiplo de 8. Aquí están las imágenes:

256x256

253x253

Luego realicé cuatro rotaciones en el sentido contrario a las agujas del reloj, cerrando el visor de fotos después de cada rotación para asegurarme de que la imagen se guardara en su estado rotado.

256x256

253x253

No es necesario realizar una resta para ver la diferencia con la imagen de 253 píxeles, ¡es notablemente más oscura y turbia!

Una diferencia en la otra imagen se ve así:

es decir, las imágenes son idénticas, las rotaciones no tuvieron pérdidas.

Sé que en el pasado, cuando hice rotaciones, me advirtió que la rotación tendría pérdidas, lo que implica que en los casos en que no se mostró la advertencia, la transformación no tuvo pérdidas, pero no verifiqué. Tampoco recuerdo qué versión de WPV estaba usando, lo que no descarta la posibilidad de que MS haya cambiado el código base, así que no, no puedo estar seguro.
@Tim, una imagen de ruido puro es, por definición, el peor caso para jpeg (o cualquier algoritmo de compresión), ¡por eso lo elegí! Los resultados en imágenes reales se verían mejor.
@MattGrum, muy buena demostración. ¡Espero que todos los fabricantes de cámaras digitales tengan sus tamaños de imagen en múltiplos enteros de 8!
@MattGrum Solía ​​trabajar en el equipo de WPV. AFAIK, (y estoy bastante seguro) tu respuesta es correcta. Además, +1 por un método muy completo para probar su hipótesis:)
@TrevorBoydSmith todas las cámaras que he visto tienen dimensiones de imagen que son un múltiplo de 8 o 16. La rotación no es necesariamente la razón, solo puede permitir cierta optimización de la tubería JPEG.