2011-01-07 14 views

Respuesta

4

Es posible marcar un archivo JPG para cambiar la forma en que se supone que se mostrará sin carga y la decodificación de la imagen JPG en una mapa de bits en memoria. El archivo de imagen JPG puede incluir opcionalmente una sección de metadatos EXIF, a menudo utilizada para describir el dispositivo y las circunstancias involucradas en la creación o captura de la imagen: modelo de cámara, velocidad de obturación, exposición ISO equivalente, etc.

Los metadatos EXIF ​​también incluye un indicador de Orientación que se puede utilizar para informar a las aplicaciones del visor de imágenes cómo deben estar orientados los píxeles de la imagen JPG en la superficie de la pantalla. Este indicador de orientación (y los metadatos EXIF) pueden leerse y escribirse en el archivo JPG sin cargar o decodificar los datos de imagen en píxeles. Esto también significa que la orientación se puede cambiar varias veces sin pérdida de detalle de la imagen, ya que la imagen no se descomprime, gira y luego vuelve a comprimir en un nuevo archivo en el disco.

Para hacer esto, necesitará el código C# que leerá el formato de archivo JFIF del archivo JPG y buscará y extraerá la sección EXIF. No creo que el lector de imágenes .NET incorporado proporcione algo así.

Tenga en cuenta que no todos los lectores JPG respetan el indicador de orientación EXIF. Creo que la aplicación Vista previa de imágenes incorporada de Windows respeta el indicador de orientación EXIF ​​en las versiones actuales de Windows, pero no en las versiones anteriores de Windows, como Windows XP.

Más información en la bandera de orientación EXIF ​​aquí: http://jpegclub.org/exif_orientation.html

+0

pero para ver la imagen en realidad gira que se necesita que el espectador obedece esta bandera Orientación ... cuántos espectadores realmente hacer eso? –

+1

Creo que la bandera de Orientación ahora es más compatible con un visor que no. La Vista previa de la imagen de Windows Vista y Windows 7 respeta el indicador de Orientación. Cuando está viendo una imagen en el Previewer y cambia su orientación, lo hace sin pérdida de detalle de la imagen, lo que a mí me parece que está modificando el indicador de orientación EXIF. Sospecho que la clase de imagen .NET puede respetar el indicador de Orientación al cargar un archivo JPG en un mapa de bits en memoria, pero no lo he probado. – dthorpe

Cuestiones relacionadas