¿Cómo importa la endianness JPEG en la codificación?
Actualmente estoy trabajando en un gran proyecto que involucra imágenes. Uno de los grandes problemas que estoy teniendo es con el endianness de la imagen (jpeg para ser más claro). Siempre pensé que en nuestro mundo moderno no teníamos que molestarnos sobre este tema, pero ahora no estoy seguro.
Lo que hago
Hago una solicitud HTTP a una cámara IP, la cámara me devuelve una matriz de bytes. Analizo estos bytes en una imagen de objeto en .NET usando Image.FromStream. Tomo mi objeto Imagen y guardo en un archivo físico en el disco duro.Estas imágenes se utilizan en otro módulo de mi aplicación que utiliza un "visor" de terceros que manipula la imagen. El visor funciona con todas las imágenes generadas con la computadora en Windows XP y Windows Vista. Pero cuando la imagen se genera utilizando una máquina con Windows 7, las imágenes están en mal estado.
Digamos que la imagen creada con Windows XP se llamará PictureXP y la imagen creada con Windows 7 se llamará Picture7. Verifiqué los archivos con exiftools y descubrí que había 2 campos diferentes entre PictureXP e Picture7.
PictureXP: Exif Byte Order: Little-endian Picture7: Exif Byte Order: Big-endian Picture7 también tiene un campo adicional: Comentario del usuario:.
Las dos imágenes se pueden abrir normalmente en cualquier visor de fotos, es solo en este visor de terceros que la imagen se muestra mezclada y la única diferencia entre las 3 imágenes son estos campos.
Qué quiero saber
¿Es posible que la tercera parte necesite poner un código adicional a su software para que tenga que lidiar con la calidad de la imagen? ¿Supongo que todo el programa de imágenes se ocupa de es ¿Es posible que cambie la endianness de mi jpeg para que sea siempre little endian? He leído en alguna parte que el contenido de un archivo jpeg siempre se supone que tiene el mismo endianness pero parece que no está considerando los datos exif. Si es posible, me encantaría una solución en .NET ... Cualquier cosa que pueda ayudar a pasar por esta situación también se considerará como una respuesta.¡Muchas gracias
EDIT 1 : Encontré estoartícul confirmando que los endiannes encontrados en el encabezado exif solo son aplicables al encabezado exif y que un archivo jpeg siempre está en big-endian. Entonces, ¿hay alguna manera de cambiar el encabezado exif para que el software de terceros pueda leer lo que necesita?