Vips.Foreign (original) (raw)
Class
VipsForeign
Description [src]
abstract class Vips.Foreign : Vips.Operation
{
/* No available fields */
}An abstract base class to load and save images in a variety of formats.
Load and save
You can load and save from and to files, memory areas, and the libvips IOabstractions, VipsSource and VipsTarget.
Use vips_foreign_find_load() vips_foreign_find_load_buffer() andvips_foreign_find_load_source() to find a loader for an object. Usevips_foreign_find_save(), vips_foreign_find_save_buffer() andvips_foreign_find_save_target() to find a saver for a format. You can then run these operations using vips_call() and friends to perform the load or save.
vips_image_write_to_file() and vips_image_new_from_file() and friends use these functions to automate file load and save.
You can also invoke the operations directly, for example:
vips_tiffsave(my_image, "frank.anything", "compression", VIPS_FOREIGN_TIFF_COMPRESSION_JPEG, NULL);
All loaders attach all image metadata as libvips properties on load.
You can change metadata with vips_image_set_int() and friends.
During save, you can use keep to specify which metadata to retain, defaults to all, see VipsForeignKeep. Setting profile will automatically keep the ICC profile.
Many page images
By default, libvips will only load the first page of many page or animated images. Use page and n to set the start page and the number of pages to load. Set n to -1 to load all pages.
Many page images are loaded as a tall, thin strip of pages.
Use vips_image_get_page_height() and vips_image_get_n_pages() to find the page height and number of pages of a loaded image.
Use page_height to set the page height for image save.
Alpha save
Not all image formats support alpha. If you try to save an image with an alpha channel to a format that does not support it, the alpha will be automatically flattened out. Use background (default 0) to set the colour that alpha should be flattened against.
Adding new formats
To add support for a new file format to vips, simply define a new subclass of VipsForeignLoad or VipsForeignSave.
If you define a new operation which is a subclass of VipsForeign, support for it automatically appears in all libvips user-interfaces. It will also be transparently supported by vips_image_new_from_file() and friends.
Functions
vips_foreign_find_load
Searches for an operation you could use to load filename. Any trailing options on filename are stripped and ignored.
vips_foreign_find_load_buffer
Searches for an operation you could use to load a memory buffer. To see the range of buffer loaders supported by your vips, try something like:.
vips_foreign_find_load_source
Searches for an operation you could use to load a source. To see the range of source loaders supported by your vips, try something like:.
vips_foreign_find_save
Searches for an operation you could use to write to filename. Any trailing options on filename are stripped and ignored.
vips_foreign_is_a
Return TRUE if filename can be loaded by loader. loader is something like “tiffload” or “VipsForeignLoadTiff”.
vips_foreign_is_a_buffer
Return TRUE if data can be loaded by loader. loader is something like “tiffload_buffer” or “VipsForeignLoadTiffBuffer”.
vips_foreign_is_a_source
Return TRUE if source can be loaded by loader. loader is something like “tiffload_source” or “VipsForeignLoadTiffSource”.
vips_foreign_map
Apply a function to every VipsForeign that VIPS knows about. Foreigns are presented to the function in priority order.
Instance methods
Methods inherited from GObject (43)
Please see GObject for a full list of methods.
Properties
Signals
Signals inherited from VipsObject (4)
VipsObject::close
The ::close signal is emitted once during object close. The object is dying and may not work.
VipsObject::postbuild
The ::postbuild signal is emitted once just after successful object construction. Return non-zero to cause object construction to fail.
VipsObject::postclose
The ::postclose signal is emitted once after object close. The object pointer is still valid, but nothing else.
VipsObject::preclose
The ::preclose signal is emitted once just before object close starts. The object is still alive.
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct VipsForeignClass {
VipsOperationClass parent_class;
int priority;
const char** suffs;
}No description available.
Class members
parent_class: VipsOperationClass
No description available.
priority: int
No description available.
suffs: const char**
No description available.