Freeimage.h

FreeImage_SetOutputMessage

Cuando cierto mapa de bits no puede ser cargado o guardado suele haber una explicación para ello. Por ejemplo, ciertos formatos de mapas de bits no están soportados debido a restricciones de copyright, o puede existir un problema conocido con ciertos subtipos de mapas de bits. Cuando algo falla internamente en FreeImage se genera una cadena de diario (log-string), que puede ser capturada por la aplicación que esté usando FreeImage. Se puede usar la función FreeImage_SetOutputMessage para capturar esta cadena de modo que se puede mostrar al usuario del programa.

Sintaxis

DLL_API void DLL_CALLCONV FreeImage_SetOutputMessage(FreeImage_OutputMessageFunction omf);

Parámetros

omf: puntero a función de retrollamada (callback) que manipula los mensajes de error.

Ejemplo:

/**
FreeImage error handler
@param fif Format / Plugin responsible for the error
@param message Error message
*/
void FreeImageErrorHandler(FREE_IMAGE_FORMAT fif, const char *message) {
 printf("\n*** ");
 if(fif != FIF_UNKNOWN) {
 printf("%s Format\n", FreeImage_GetFormatFromFIF(fif));
 }
 printf(message);
 printf(" ***\n");
}
// In your main program …
FreeImage_SetOutputMessage(FreeImageErrorHandler);

El parámetro fif pasado como primer argumento en la retrollamada (callback) debe ser igual a FIF_UNKNOWN cuando se genera un error que no esté relacionado con un plugin. En ese caso, la llamada a FreeImage_GetFormatFromFIF(FIF_UNKNOWN) retornará NULL. Proporcionar un valor NULL a funciones como “printf(…)” hará que tu aplicación falle, así que ten cuidado...