2010-07-14 26 views
5

¿Hay un máximo teórico para la cantidad de metadatos (EXIF, etc) que pueden ser incorporados en un fichero JPEG? Me gustaría asignar un búfer que se asegure que sea suficiente para mantener los metadatos de cualquier imagen JPEG sin tener que analizarlo yo mismo.¿Cuál es el tamaño máximo de los metadatos JPEG?

Respuesta

9

No hay un máximo teórico, ya que ciertos marcadores de aplicación se puede utilizar varias veces (por ejemplo APP1 se utiliza tanto para la cabecera EXIF ​​y también el bloque XMP). Además, no hay nada que evite múltiples bloques de comentarios.

En la práctica la que es mucho más común para dar lugar a una gran cabecera es específicamente el marcador APP2 que se utiliza para almacenar el perfil de color ICC para la imagen. Como algunos perfiles de color complicados pueden ser de varios megabytes, en realidad se dividirán en muchos bloques APP2 (ya que cada uno de los bloques APP tiene un límite de direcciones de 16 bits).

3

Cada área de datos APPN tiene un campo de longitud que es de 2 bytes, por lo que 65.536 sostendría el más grande. Si solo te preocupan los datos EXIF, sería un poco menos.
http://www.fileformat.info/format/jpeg/egff.htm Hay un máximo de 16 diferentes marcadores APPN en un solo archivo. No creo que puedan repetirse, por lo que 16 * 65K debería ser el máximo teórico.

+0

Gracias edgman. Parece que algunos de los marcadores están efectivamente fijados en longitudes menores a 64 K, por lo que se podría calcular un límite teórico inferior, pero su cálculo aproximado es lo suficientemente bueno para mis propósitos. – darrinm

+1

La respuesta de Grayson Lang es la correcta. No hay nada que evite múltiples bloques del mismo marcador. –

+0

en Linux, las herramientas wrjpgcom y rdjpgcom son extremadamente útiles ... aquí es donde terminé presionando una gran cantidad de datos de texto. – phyatt

Cuestiones relacionadas