gdkpixbuf.pixbuf_module
Module for [PixbufModule] class
Types 1
A gdkpixbuf.pixbuf_module.PixbufModule contains the necessary functions to load and save images in a certain file format.
If gdkpixbuf.pixbuf.Pixbuf has been compiled with gmodule.module_.Module support, it can be extended by modules which can load (and perhaps also save) new image and animation formats.
Implementing modules
The gdkpixbuf.pixbuf.Pixbuf interfaces needed for implementing modules are contained in gdk-pixbuf-io.h (and gdk-pixbuf-animation.h if the module supports animations). They are not covered by the same stability guarantees as the regular GdkPixbuf API. To underline this fact, they are protected by the GDK_PIXBUF_ENABLE_BACKEND pre-processor symbol.
Each loadable module must contain a gdkpixbuf.types.PixbufModuleFillVtableFunc function named fill_vtable, which will get called when the module is loaded and must set the function pointers of the gdkpixbuf.pixbuf_module.PixbufModule.
In order to make format-checking work before actually loading the modules (which may require calling dlopen to load image libraries), modules export their signatures (and other information) via the fill_info function. An external utility, gdk-pixbuf-query-loaders, uses this to create a text file containing a list of all available loaders and their signatures. This file is then read at runtime by gdkpixbuf.pixbuf.Pixbuf to obtain the list of available loaders and their signatures.
Modules may only implement a subset of the functionality available via gdkpixbuf.pixbuf_module.PixbufModule. If a particular functionality is not implemented, the fill_vtable function will simply not set the corresponding function pointers of the gdkpixbuf.pixbuf_module.PixbufModule structure. If a module supports incremental loading (i.e. provides begin_load, stop_load and load_increment), it doesn't have to implement load, since gdkpixbuf.pixbuf.Pixbuf can supply a generic load implementation wrapping the incremental loading.
Installing modules
Installing a module is a two-step process:
- copy the module file(s) to the loader directory (normally
$libdir/gdk-pixbuf-2.0/$version/loaders, unless overridden by the environment variableGDK_PIXBUF_MODULEDIR) - call
gdk-pixbuf-query-loadersto update the module file (normally$libdir/gdk-pixbuf-2.0/$version/loaders.cache, unless overridden by the environment variableGDK_PIXBUF_MODULE_FILE)
GdkPixbufModule _cInstancevoid * _cPtr() nothrowstring moduleName() @property nothrowGet `moduleName` field. Returns: the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png".void moduleName(string propval) @property nothrowSet `moduleName` field. Params: propval = the name of the module, usually the same as the usual file extension for images of this type, eg. "xpm", "jpeg" or "png".string modulePath() @property nothrowGet `modulePath` field. Returns: the path from which the module is loaded.void modulePath(string propval) @property nothrowSet `modulePath` field. Params: propval = the path from which the module is loaded.gmodule.module_.Module module_() @property nothrowGet `module_` field. Returns: the loaded [gmodule.module_.Module].gdkpixbuf.pixbuf_format.PixbufFormat info() @property nothrowGet `info` field. Returns: a [gdkpixbuf.pixbuf_format.PixbufFormat] holding information about the module.void info(gdkpixbuf.pixbuf_format.PixbufFormat propval) @property nothrowSet `info` field. Params: propval = a [gdkpixbuf.pixbuf_format.PixbufFormat] holding information about the module.GdkPixbufModuleLoadFunc load() @property nothrowGet `load` field. Returns: loads an image from a file.void load(GdkPixbufModuleLoadFunc propval) @property nothrowSet `load` field. Params: propval = loads an image from a file.GdkPixbufModuleLoadXpmDataFunc loadXpmData() @property nothrowGet `loadXpmData` field. Returns: loads an image from data in memory.void loadXpmData(GdkPixbufModuleLoadXpmDataFunc propval) @property nothrowSet `loadXpmData` field. Params: propval = loads an image from data in memory.GdkPixbufModuleStopLoadFunc stopLoad() @property nothrowGet `stopLoad` field. Returns: stops an incremental load.void stopLoad(GdkPixbufModuleStopLoadFunc propval) @property nothrowSet `stopLoad` field. Params: propval = stops an incremental load.GdkPixbufModuleIncrementLoadFunc loadIncrement() @property nothrowGet `loadIncrement` field. Returns: continues an incremental load.void loadIncrement(GdkPixbufModuleIncrementLoadFunc propval) @property nothrowSet `loadIncrement` field. Params: propval = continues an incremental load.GdkPixbufModuleLoadAnimationFunc loadAnimation() @property nothrowGet `loadAnimation` field. Returns: loads an animation from a file.void loadAnimation(GdkPixbufModuleLoadAnimationFunc propval) @property nothrowSet `loadAnimation` field. Params: propval = loads an animation from a file.GdkPixbufModuleSaveFunc save() @property nothrowGet `save` field. Returns: saves a [gdkpixbuf.pixbuf.Pixbuf] to a file.void save(GdkPixbufModuleSaveFunc propval) @property nothrowSet `save` field. Params: propval = saves a [gdkpixbuf.pixbuf.Pixbuf] to a file.GdkPixbufModuleSaveOptionSupportedFunc isSaveOptionSupported() @property nothrowGet `isSaveOptionSupported` field. Returns: returns whether a save option key is supported by the modulevoid isSaveOptionSupported(GdkPixbufModuleSaveOptionSupportedFunc propval) @property nothrowSet `isSaveOptionSupported` field. Params: propval = returns whether a save option key is supported by the module