freeimage.h

FreeImage_GetMetadata

DLL_API BOOL DLL_CALLCONV FreeImage_GetMetadata(FREE_IMAGE_MDMODEL model, FIBITMAP
*dib, const char *key, FITAG **tag);

Recupera un metadato asociado a un dib. A la entrada, model es el modelo de metadato a buscar, dib es la imagen que contene el metadato, key es el nombre del campo del metadato (único dentro del modelo de metadatos) y tag es una estructra FITAG retornada por la función.

Cuando la etiqueta buscada no existe, el objeto tag se deja sin modificar y la función retorna FALSE. En caso contrario, la función retorna TRUE y el objeto tag contiene la información del metadato.

// this code assumes there is a bitmap loaded and
// present in a variable called ‘dib’
// Get the camera model
FITAG *tagMake = NULL;
FreeImage_GetMetadata(FIMD_EXIF_MAIN, dib, "Make", &tagMake);
if(tagMake != NULL) {
    // here we know (according to the Exif specifications) that tagMake is a C string
    printf("Camera model : %s\n", (char*)FreeImage_GetTagValue(tagMake));
    // if we don’t have the specifications, we can still convert the tag to a C string
    printf("Camera model : %s\n", FreeImage_TagToString(FIMD_EXIF_MAIN, tagMake));
}

Cuando una etiqueta retornada por FreeImage_GetMetadata o por una función iteradora de metadatos es modificad, los cambios serán aplicados a la etiqueta correspondiente en el mapa de bits. Al guardar el mapa de bits se guardará la etiqueta modificada (siempre que la librería pueda guardar el modelo de metadatos correspondiente).