vips_image_new() creates a new, empty #VipsImage. If you write to one of these images, vips will just attach some callbacks, no pixels will be generated.
Write pixels to an image with vips_image_generate() or vips_image_write_line(). Write a whole image to another image with vips_image_write().
Convenience: has an argument been assigned. Useful for bindings.
arg to fetch
Remove the orientation tag on image
. Also remove any exif orientation tags.
You must vips_copy() the image before calling this function since it
modifies metadata.
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If flags
contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref() on the returned
#GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
Creates a binding between source_property
on source
and target_property
on target,
allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
a #GClosure wrapping the transformation function from the source
to the target,
or %NULL to use the default
a #GClosure wrapping the transformation function from the target
to the source,
or %NULL to use the default
Test if image
is in a colourspace that vips_colourspace() can process.
Make an image which is an area of memory.
If image
is already a memory buffer, just ref and return. If it's a file on
disc or a partial, allocate memory and copy the image to it.
This operation is thread-safe, unlike vips_image_wio_input().
If you are sure that image
is not shared with another thread (perhaps you
have made it yourself), use vips_image_wio_input() instead.
See also: vips_image_wio_input().
We often need to know what an image will decode to without actually decoding it, for example, in arg checking.
See also: vips_image_decode().
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
Loaders can call this on the image they are making if they see a read error from the load library. It signals "invalidate" on the load operation and will cause it to be dropped from cache.
If we know a file will cause a read error, we don't want to cache the failing operation, we want to make sure the image will really be opened again if our caller tries again. For example, a broken file might be replaced by a working one.
Free the externally allocated buffer found in the input image. This function is intended to be used with g_signal_connect.
the orignal buffer that was stolen
Increases the freeze count on object
. If the freeze count is
non-zero, the emission of "notify" signals on object
is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
#GObject::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Fill value_copy
with a copy of the header field. value_copy
must be zeroed
but uninitialised.
This will return -1 and add a message to the error buffer if the field does not exist. Use vips_image_get_typeof() to test for the existence of a field first if you are not certain it will be there.
For example, to read a double from an image (though of course you would use vips_image_get_double() in practice):
|[ GValue value = { 0 }; double d;
if (vips_image_get (image, name, &value)) return -1;
if (G_VALUE_TYPE (&value) != G_TYPE_DOUBLE) { vips_error( "mydomain", _("field "%s" is of type %s, not double"), name, g_type_name (G_VALUE_TYPE (&value))); g_value_unset (&value); return -1; }
d = g_value_get_double (&value); g_value_unset (&value);
See also: vips_image_get_typeof(), vips_image_get_double().
@param name the name to fetch
Gets data
from image
under the name name
. A convenience
function over vips_image_get(). Use vips_image_get_typeof() to test for
the existence of a piece of metadata.
See also: vips_image_set_area(), vips_image_get(), vips_image_get_typeof()
metadata name
Convenience: get the flags for an argument. Useful for bindings.
arg to fetch
Convenience: get the priority for an argument. Useful for bindings.
arg to fetch
Gets out
from im
under the name name
.
The field must be of type
#VIPS_TYPE_ARRAY_INT.
Do not free out
. out
is valid as long as image
is valid.
Use vips_image_get_typeof() to test for the existence of a piece of metadata.
See also: vips_image_get(), vips_image_set_image()
metadata name
Gets out
from im
under the name name
.
The field must be of type
#VIPS_TYPE_ARRAY_INT.
Do not free out
. out
is valid as long as image
is valid.
Use vips_image_get_typeof() to test for the existence of a piece of metadata.
See also: vips_image_get(), vips_image_set_image()
metadata name
Returns name
from image
in out
.
This function will read any field, returning it as a printable string.
You need to free the string with g_free() when you are done with it.
This will base64-encode BLOBs, for example. Use vips_buf_appendgv() to make a string that's for humans.
See also: vips_image_get(), vips_image_get_typeof(), vips_buf_appendgv().
field name
Gets blob
from image
under the name name,
optionally returns its length in
length
. A convenience
function over vips_image_get(). Use vips_image_get_typeof() to test for the
existence
of a piece of metadata.
See also: vips_image_get(), vips_image_get_typeof(), vips_blob_get(),
metadata name
Return a pointer to the image's pixel data, if possible. This can involve allocating large amounts of memory and performing a long computation. Image pixels are laid out in band-packed rows.
Since this function modifies image,
it is not threadsafe. Only call it on
images which you are sure have not been shared with another thread.
See also: vips_image_wio_input(), vips_image_copy_memory().
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
Fetch the object description. Useful for language bindings.
object
.description is only avaliable after _build(), which can be too
late. This function fetches from the instance, if possible, but falls back
to the class description if we are too early.
Gets out
from im
under the name name
.
The value will be transformed into
a double, if possible.
See also: vips_image_get(), vips_image_get_typeof()
field name
Get a %NULL-terminated array listing all the metadata field names on image
.
Free the return result with g_strfreev().
This is handy for language bindings. From C, it's usually more convenient to use vips_image_map().
This function reads the image history as a C string. The string is owned by VIPS and must not be freed.
VIPS tracks the history of each image, that is, the sequence of operations that generated that image. Applications built on VIPS need to call vips_image_history_printf() for each action they perform, setting the command-line equivalent for the action.
See also: vips_image_history_printf().
Gets out
from im
under the name name
.
The field must be of type
#VIPS_TYPE_IMAGE. You must unref out
with g_object_unref().
Use vips_image_get_typeof() to test for the existence of a piece of metadata.
See also: vips_image_get(), vips_image_set_image()
metadata name
Gets out
from im
under the name name
.
The value will be transformed into
an int, if possible.
See also: vips_image_get(), vips_image_get_typeof()
field name
Return the #VipsInterpretation set in the image header. Use vips_image_guess_interpretation() if you want a sanity-checked value.
Image modes are things like "t"
, meaning a memory buffer, and "p"
meaning a delayed computation.
Fetch and sanity-check #VIPS_META_N_PAGES. Default to 1 if not present or crazy.
This is the number of pages in the image file, not the number of pages that
have been loaded into image
.
Fetch and sanity-check #VIPS_META_N_SUBIFDS. Default to 0 if not present or crazy.
Matrix images can have an optional offset
field for use by integer
convolution.
Fetch and sanity-check #VIPS_META_ORIENTATION. Default to 1 (no rotate, no flip) if not present or crazy.
Return %TRUE if applying the orientation would swap width and height.
Multi-page images can have a page height. Fetch it, and sanity check it. If page-height is not set, it defaults to the image height.
Gets a property of an object.
The value
can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
the name of the property to get
return location for the property value
This function gets back user data pointers stored via g_object_set_qdata().
A #GQuark, naming the user data pointer
Matrix images can have an optional scale
field for use by integer
convolution.
Gets out
from im
under the name name
.
The field must be of type
G_TYPE_STRING, VIPS_TYPE_REF_STRING.
Do not free out
.
Use vips_image_get_as_string() to fetch any field as a string.
See also: vips_image_get(), vips_image_get_typeof()
field name
Read the %GType for a header field. Returns zero if there is no field of that name.
See also: vips_image_get().
the name to search for
Gets n_properties
properties for an object
.
Obtained properties will be set to values
. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Return the #VipsBandFormat for an image, guessing a sane value if the set value looks crazy.
For example, for a float image tagged as rgb16, we'd return ushort.
Return the #VipsInterpretation for an image, guessing a sane value if the set value looks crazy.
Look at an image's interpretation and see if it has extra alpha bands. For example, a 4-band #VIPS_INTERPRETATION_sRGB would, but a six-band #VIPS_INTERPRETATION_MULTIBAND would not.
Return %TRUE if image
has an alpha channel.
Formats the name/argv as a single string and calls vips_image_history_printf(). A convenience function for command-line prorams.
See also: vips_image_get_history().
program name
program arguments
A convenience function to set the header fields after creating an image. Normally you copy the fields from your input images with vips_image_pipelinev() and then make any adjustments you need, but if you are creating an image from scratch, for example vips_black() or vips_jpegload(), you do need to set all the fields yourself.
See also: vips_image_pipelinev().
image width
image height
image bands
band format
image coding
image type
horizontal resolution, pixels per millimetre
vertical resolution, pixels per millimetre
Gets image
ready for an in-place operation, such as vips_draw_circle().
After calling this function you can both read and write the image with
VIPS_IMAGE_ADDR().
This method is called for you by the base class of the draw operations, there's no need to call it yourself.
Since this function modifies image,
it is not thread-safe. Only call it on
images which you are sure have not been shared with another thread.
All in-place operations are inherently not thread-safe, so you need to take
great care in any case.
See also: vips_draw_circle(), vips_image_wio_input().
Invalidate all pixel caches on image
and any downstream images, that
is, images which depend on this image. Additionally, all operations which
depend upon this image are dropped from the VIPS operation cache.
You should call this function after destructively modifying an image with something like vips_draw_circle().
The #VipsImage::invalidate signal is emitted for all invalidated images.
See also: vips_region_invalidate().
Return %TRUE if image
is in most-significant-
byte first form. This is the byte order used on the SPARC
architecture and others.
Checks whether object
has a [floating][floating-ref] reference.
TRUE if any of the images upstream from image
were opened in sequential
mode. Some operations change behaviour slightly in sequential mode to
optimize memory behaviour.
Return %TRUE if image
represents a file on disc in some way.
If image
has been killed (see vips_image_set_kill()), set an error message,
clear the #VipsImage.kill flag and return %TRUE. Otherwise return %FALSE.
Handy for loops which need to run sets of threads which can fail.
See also: vips_image_set_kill().
Return %TRUE if im
represents a partial image (a delayed calculation).
This function calls fn
for every header field, including every item of
metadata.
Like all _map functions, the user function should return %NULL to continue iteration, or a non-%NULL pointer to indicate early termination.
See also: vips_image_get_typeof(), vips_image_get().
user data for function
Minimise memory use on this image and any upstream images, that is, images which this image depends upon. This function is called automatically at the end of a computation, but it might be useful to call at other times.
The #VipsImage::minimise signal is emitted for all minimised images.
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
the name of a property installed on the class of object
.
Emits a "notify" signal for the property specified by pspec
on object
.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
enum
{
PROP_0,
PROP_FOO,
PROP_LAST
};
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
0, 100,
50,
G_PARAM_READWRITE);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the #GParamSpec of a property installed on the class of object
.
Check that an image is readable with vips_region_prepare() and friends. If it isn't, try to transform the image so that vips_region_prepare() can work.
See also: vips_image_pio_output(), vips_region_prepare().
Check that an image is writeable with vips_image_generate(). If it isn't, try to transform the image so that vips_image_generate() can work.
See also: vips_image_pio_input().
Prints field name
to stdout as ASCII. Handy for debugging.
field name
Increase the reference count of object,
and possibly remove the
[floating][floating-ref] reference, if object
has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object
will be propagated to the return type
under the same conditions as for g_object_ref().
Find and remove an item of metadata. Return %FALSE if no metadata of that name was found.
See also: vips_image_set(), vips_image_get_typeof().
the name to search for
vips_reorder_margin_hint() sets a hint that image
contains a margin, that
is, that each vips_region_prepare() on image
will request a slightly larger
region from it's inputs. A good value for margin
is (width * height) for
the window the operation uses.
This information is used by vips_image_prepare_many() to attempt to reorder computations to minimise recomputation.
See also: vips_image_prepare_many().
the size of the margin this operation has added
vips_reorder_prepare_many() runs vips_region_prepare() on each region in
regions,
requesting the pixels in r
.
It tries to request the regions in the order which will cause least recomputation. This can give a large speedup, in some cases.
See also: vips_region_prepare(), vips_reorder_margin_hint().
the set of regions to prepare
the #VipsRect to prepare on each region
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Set a piece of metadata on image
. Any old metadata with that name is
destroyed. The %GValue is copied into the image, so you need to unset the
value when you're done with it.
For example, to set an integer on an image (though you would use the convenience function vips_image_set_int() in practice), you would do:
|[ GValue value = { 0 };
g_value_init (&value, G_TYPE_INT); g_value_set_int (&value, 42); vips_image_set (image, name, &value); g_value_unset (&value);
See also: vips_image_get().
@param name the name to give the metadata
@param value the %GValue to copy into the image
Attaches data
as a metadata item on image
under the name name
. When
VIPS no longer needs the metadata, it will be freed with free_fn
.
See also: vips_image_get_double(), vips_image_set()
metadata name
free function for data
Attaches array
as a metadata item on image
as name
.
A convenience function over vips_image_set().
See also: vips_image_get_image(), vips_image_set().
metadata name
array of doubles
Attaches array
as a metadata item on image
as name
.
A convenience function over vips_image_set().
See also: vips_image_get_image(), vips_image_set().
metadata name
array of ints
Attaches blob
as a metadata item on image
under the name name
. A
convenience
function over vips_image_set() using a vips_blob.
See also: vips_image_get_blob(), vips_image_set().
metadata name
free function for data
pointer to area of memory
Attaches blob
as a metadata item on image
under the name name,
taking
a copy of the memory area. A convenience function over
vips_image_set_blob().
See also: vips_image_get_blob(), vips_image_set().
metadata name
pointer to area of memory
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key
is converted to a #GQuark using g_quark_from_string().
This means a copy of key
is kept permanently (even after object
has been
finalized) — so it is recommended to only use a small, bounded set of values
for key
in your program, to avoid the #GQuark storage growing unbounded.
name of the key
data to associate with that key
Sets the delete_on_close flag for the image. If this flag is set, when
image
is finalized, the filename held in image->
filename at the time of
this call is deleted.
This function is clearly extremely dangerous, use with great caution.
See also: vips_image_new_temp_file().
format of file
Attaches d
as a metadata item on image
as name
. A
convenience
function over vips_image_set().
See also: vips_image_get_double(), vips_image_set()
metadata name
metadata value
Set object arguments from a string. The string can be something like "a=12", or "a = 12, b = 13", or "fred". The string can optionally be enclosed in brackets.
You'd typically use this between creating the object and building it.
See also: vips_object_set(), vips_object_build(), vips_cache_operation_buildp().
arguments as a string
Attaches i
as a metadata item on image
under the name name
. A
convenience
function over vips_image_set().
See also: vips_image_get_int(), vips_image_set()
metadata name
metadata value
Set the #VipsImage.kill flag on an image. Handy for stopping sets of threads.
See also: vips_image_iskilled().
the kill state
vips signals evaluation progress via the #VipsImage::preeval, #VipsImage::eval and #VipsImage::posteval signals. Progress is signalled on the most-downstream image for which vips_image_set_progress() was called.
turn progress reporting on or off
Sets a property on an object.
the name of the property to set
the value
Attaches str
as a metadata item on image
as name
.
A convenience
function over vips_image_set() using #VIPS_TYPE_REF_STRING.
See also: vips_image_get_double(), vips_image_set().
metadata name
metadata value
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data
from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
A #GQuark, naming the user data pointer
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Decreases the reference count of object
. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
Unref all assigned output objects. Useful for language bindings.
After an object is built, all output args are owned by the caller. If something goes wrong before then, we have to unref the outputs that have been made so far. This function can also be useful for callers when they've finished processing outputs themselves.
See also: vips_cache_operation_build().
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
This function essentially limits the life time of the closure
to
the life time of the object. That is, when the object is finalized,
the closure
is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure,
to ensure that an extra
reference count is held on object
during invocation of the
closure
. Usually, this function will be called on closures that
use this object
as closure data.
#GClosure to watch
Check that an image is readable via the VIPS_IMAGE_ADDR() macro, that is, that the entire image is in memory and all pixels can be read with VIPS_IMAGE_ADDR(). If it isn't, try to transform it so that VIPS_IMAGE_ADDR() can work.
Since this function modifies image,
it is not thread-safe. Only call it on
images which you are sure have not been shared with another thread. If the
image might have been shared, use the less efficient
vips_image_copy_memory() instead.
See also: vips_image_copy_memory(), vips_image_pio_input(), vips_image_inplace(), VIPS_IMAGE_ADDR().
Write a line of pixels to an image. This function must be called repeatedly
with ypos
increasing from 0 to #VipsImage::height .
linebuffer
must be VIPS_IMAGE_SIZEOF_LINE() bytes long.
See also: vips_image_generate().
vertical position of scan-line to write
scanline of pixels
Call this after setting header fields (width, height, and so on) to allocate resources ready for writing.
Normally this function is called for you by vips_image_generate() or vips_image_write_line(). You will need to call it yourself if you plan to write directly to the ->data member of a memory image.
Writes in
to memory as a simple, unformatted C-style array.
The caller is responsible for freeing this memory with g_free().
See also: vips_image_write_to_buffer().
Find the #GParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init
member of
#GTypeInfo.) It must not be called after after class_init
has
been called for any object types implementing this interface.
If pspec
is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the #GParamSpec for the new property
Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface
will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
vips_image_new() creates a new, empty #VipsImage. If you write to one of these images, vips will just attach some callbacks, no pixels will be generated.
Write pixels to an image with vips_image_generate() or vips_image_write_line(). Write a whole image to another image with vips_image_write().
This function maps the named file and returns a #VipsImage you can use to read it.
It returns an 8-bit image with bands
bands. If the image is not 8-bit, use
vips_copy() to transform the descriptor after loading it.
See also: vips_copy(), vips_rawload(), vips_image_new_from_file().
filename to open
image width
image height
image bands (or bytes per pixel)
bytes to skip at start of file
This function wraps a #VipsImage around a memory area. The memory area must be a simple array, for example RGBRGBRGB, left-to-right, top-to-bottom. Use vips_image_new_from_buffer() to load an area of memory containing an image in a format.
VIPS does not take responsibility for the area of memory, it's up to you to make sure it's freed when the image is closed. See for example #VipsObject::close.
Because VIPS is "borrowing" data
from the caller, this function is
extremely dangerous. Unless you are very careful, you will get crashes or
memory corruption. Use vips_image_new_from_memory_copy() instead if you are
at all unsure.
Use vips_copy() to set other image properties.
See also: vips_image_new(), vips_image_write_to_memory(), vips_image_new_from_memory_copy().
start of memory area
image width
image height
image bands (or bytes per pixel)
image format
Like vips_image_new_from_memory(), but VIPS will make a copy of the memory area. This means more memory use and an extra copy operation, but is much simpler and safer.
See also: vips_image_new_from_memory().
start of memory area
image width
image height
image bands (or bytes per pixel)
image format
This convenience function makes an image which is a matrix: a one-band #VIPS_FORMAT_DOUBLE image held in memory.
Use VIPS_IMAGE_ADDR(), or VIPS_MATRIX() to address pixels in the image.
Use vips_image_set_double() to set "scale" and "offset", if required.
See also: vips_image_new_matrixv()
image width
image height
Make a #VipsImage which, when written to, will create a temporary file on
disc. The file will be automatically deleted when the image is destroyed.
format
is something like "%s.v" for a vips file.
The file is created in the temporary directory. This is set with the environment variable TMPDIR. If this is not set, then on Unix systems, vips will default to /tmp. On Windows, vips uses GetTempPath() to find the temporary directory.
See also: vips_image_new().
format of file
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
the type id of the #GObject subtype to instantiate
an array of #GParameter
An image. These can represent an image on disc, a memory buffer, an image in the process of being written to disc or a partially evaluated image in memory.