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 IO
abstractions, VipsSource
and VipsTarget
.
Use vips_foreign_find_load()
vips_foreign_find_load_buffer()
and
vips_foreign_find_load_source()
to find a loader for an object. Use
vips_foreign_find_save()
, vips_foreign_find_save_buffer()
and
vips_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);
Image metadata
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_find_save_buffer
Searches for an operation you could use to write to a buffer in suffix
format.
vips_foreign_find_save_target
Searches for an operation you could use to write to a target in suffix
format.
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 VipsForeignClass
that VIPS knows about. Foreigns
are presented to the function in priority order.
Instance methods
Methods inherited from VipsOperation (3)
vips_operation_call_valist
vips_operation_get_flags
Returns the set of flags for this operation.
vips_operation_invalidate
Methods inherited from VipsObject (27)
Please see VipsObject for a full list of methods.
Properties
Properties inherited from VipsObject (2)
Signals
Signals inherited from VipsOperation (1)
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.