freeimage.h

FreeImage_RegisterLocalPlugin

DLL_API FREE_IMAGE_FORMAT DLL_CALLCONV FreeImage_RegisterLocalPlugin(FI_InitProc
proc_address, const char *format FI_DEFAULT(0), const char *description FI_DEFAULT(0),
const char *extension FI_DEFAULT(0), const char *regexpr FI_DEFAULT(0));

Registra un nuevo plugin para ser usado en FreeImage. El The reside directamente en la aplicación que maneja FreeImage. El primer parámetro es un puntero a una función que se usa para inicializar el plugin. La función de inicialización es responsable de rellenar una estructura de Plugin y de almacenar un número de formato asignado por el sistema y usado para el registro de mensajes.

static int s_format_id;
void stdcall
Init(Plugin *plugin, int format_id) {
    s_format_id = format_id;
    // pointer to a function that returns a type-string
    // for the bitmap. For example, a plugin that loads
    // BMPs returns the string “BMP”.
    plugin->format_proc = Format;
    // pointer to a function that returns a descriptive
    // string for the bitmap type. For example, a plugin
    // that loads BMPs may return “Windows or OS/2 Bitmap”
    plugin->description_proc = Description;
    // pointer to a function that returns a comma delimited
    // list of possible file extension that are valid for
    // this plugin. A JPEG plugin would return “jpeg,jif,jfif”
    plugin->extension_proc = Extension;
    // pointer to a function that is used to load the bitmap
    plugin->load_proc = Load;
    // pointer to a function that is used to save the bitmap
    plugin->save_proc = Save;
    // pointer to a function that will try to identify a
    // bitmap by looking at the first few bytes of the bitmap.
    plugin->validate_proc = Validate;
}