2010-05-13 89 views
5

Búsqueda a través de la red, no se puede encontrar una manera de leer/escribir metadatos de archivo usando C o C++, sin embargo, hay herramientas disponibles para esto, y también hay API en C# y Java para hacer esto. Pero quiero hacerlo desde cero en C o C++.Lectura/Escritura de metadatos de archivo usando C/C++

Por ejemplo, leer/escribir metadatos de imagen.

Hemos descubierto que hay tres formatos en los que los metadatos se escriben en los archivos. EXIF, IPTC y XMP.

Gracias.

+0

No está claro qué tipo de ayuda desea. –

Respuesta

4

¿Por qué querrías hacerlo desde cero?

De todos modos, necesita documentación y es posible que también desee consultar una biblioteca existente para obtener ayuda, especialmente si no tiene experiencia en el campo.

¿Has probado Exiv?

Exiv2 es una biblioteca C++ y un comando utilidad de línea para administrar metadatos de imagen. Proporciona lectura rápida y fácil y acceso de escritura a los metadatos de imágenes Exif, IPTC y XMP en varios formatos. Exiv2 está disponible como software gratuito y con una licencia comercial, y es utilizado en muchos proyectos.

+0

No desea utilizar ninguna biblioteca. Gracias por la información sobre la biblioteca de todos modos. –

+0

Hola, ¿tiene Exif un equivalente en C? Parece que solo tiene una API de C++. – Arno

2

Existen diferentes soluciones. Una es definir una estructura (pero asegúrese de que las alineaciones de campo sean correctas), luego leer los datos y usar la estructura para acceder a los campos. ejemplo trivial:

struct header { 
    uint32_t len; 
    unsigned char type; 
    char name[16]; 
}; 

struct header hdr; 

read(fd,&hdr,sizeof(hdr)); 

... access your fields using the structure ... 

El tema es un poco más complejo que esto;) Pero ya que usted no ha especificado mucho más creo que esto todavía puede ayudar un poco.

+0

Gracias por la estructura. ¡Pero te das cuenta de que no es tan simple! –

Cuestiones relacionadas