freeimage.h

FreeImage_TagToString

DLL_API const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, FITAG
*tag, char *Make FI_DEFAULT(NULL));

Convierte una estructura de etiqueta FreeImage a una cadena qie representa el valor de la etiqueta. El valor de etiqueta es interpretado de acuerdo con la especificación de modelo de metadatos. Por ejemplo, consideremos una etiqueta extraída de un modelo de metadatos FIMD_EXIF_EXIF, cuyo ID es 0x9209 y cuya key es “Flash”. Entonces, si el valor de etiqueta es 0x0005, la función devilverá “Strobe return light not detected”.

A la entrada, model es el modelo de metadatos desde el que se extraerá el modelo de metadatos, tag es la etiqueta FreeImage a interpretar y Make es el modelo de cámara. Este último parámetro normalmente no se usa por la librería pero puede ser usado en el futuro para interpretar las notas del fabricante de la cámara (modelo de metadatos FIMD_EXIF_MAKERNOTE).

FreeImage_TagToString no es segura a nivel de hilo (not thread safe).

// this code assumes there is a bitmap loaded and
// present in a variable called 'dib'
FITAG *tag = NULL;
FIMETADATA *mdhandle = NULL;
mdhandle = FreeImage_FindFirstMetadata(model, dib, &tag);
if(mdhandle) {
    do {
        // convert the tag value to a human readable string
        const char *value = FreeImage_TagToString(model, tag);
        // print the tag
        // note that most tags do not have a description,
        // especially when the metadata specifications are not available
        if(FreeImage_GetTagDescription(tag)) {
            cout << "key : " << FreeImage_GetTagKey(tag) << "; value : " << value
                << "; description : " << FreeImage_GetTagDescription(tag) << "\n";
        } else {
            cout << "key : " << FreeImage_GetTagKey(tag) << "; value : " << value
                << "; description : (none)\n";
        }
    } while(FreeImage_FindNextMetadata(mdhandle, &tag));
}
FreeImage_FindCloseMetadata(mdhandle);