freeimage.h

FreeImage_SetMetadataKeyValue

DLL_API BOOL DLL_CALLCONV FreeImage_SetMetadataKeyValue(FREE_IMAGE_MDMODEL model,
FIBITMAP *dib, const char *key, const char *value);

Esta función auxiliar crea y establece un FITAG cuyo tipo es FIDT_ASCII. Parámetros:

  • model: Modelo de metadatos a rellenar.
  • dib: Imagen a rellenar.
  • key: Clave de etiqueta.
  • value: Valor de etiqueta como cadena ASCII (terminada en NULL).

La función retorna TRUE si tiene éxito, y FALSE si no.

char *xmp_profile = NULL;
// the following assumes that you have a XML packet stored in
// the (null terminated) variable 'xmp_profile'.
// store the tag
FreeImage_SetMetadataKeyValue(FIMD_XMP, dib, “XMLPacket”, xmp_profile);
/**
Add some IPTC tags to a FIBITMAP
*/
void add_IPTC_Metadata(FIBITMAP *dib) {
    // !!! IPTC data is ignored by Photoshop when there is a XML packet in the dib !!!
    FreeImage_SetMetadataKeyValue(FIMD_IPTC, dib, "ObjectName", "my title");
    FreeImage_SetMetadataKeyValue(FIMD_IPTC, dib, "Caption-Abstract", "my caption");
    FreeImage_SetMetadataKeyValue(FIMD_IPTC, dib, "Writer-Editor", "myself");
    FreeImage_SetMetadataKeyValue(FIMD_IPTC, dib, "By-lineTitle", "my position");
    FreeImage_SetMetadataKeyValue(FIMD_IPTC, dib, "Keywords",
        "FreeImage;Library;Images;Compression");
}