Class
VipsRegion
Description [src]
class Vips.Region : Vips.Object
{
VipsImage* im,
VipsRect valid
}
A VipsRegion
represents a small, rectangular part of an image.
You use regions to read pixels out of images without having to have the whole image in memory at once.
A region can be a memory buffer, part of a memory-mapped file, part of some other image, or part of some other region.
Regions must be created, used and freed all within the same thread, since
they can reference private per-thread caches. libvips sanity-checks region
ownership in various places, so you are likely to see g_assert()
errors if you don’t follow this rule.
There is API to transfer ownership of regions between threads, but (hopefully) this is only needed within libvips, so we don’t expose it.
Constructors
vips_region_new
Create a region. VipsRegion
start out empty, you need to call
vips_region_prepare()
to fill them with pixels.
Instance methods
vips_region_buffer
The region is transformed so that at least r
pixels are available as a
memory buffer that can be written to.
vips_region_copy
Copy from one region to another. Copy area r
from inside reg
to dest
,
positioning the area of pixels at x
, y
. The two regions must have pixels
which are the same size.
vips_region_fetch
Generate an area of pixels and return a copy. The result must be freed
with g_free()
. The requested area must be completely inside the image.
vips_region_image
The region is transformed so that at least r
pixels are available to be
read from the image. The image needs to be a memory buffer or represent a
file on disc that has been mapped or can be mapped.
vips_region_invalidate
Mark a region as containing invalid pixels. Calling this function means
that the next time vips_region_prepare()
is called, the region will be recalculated.
vips_region_position
Set the position of a region. This only affects reg->valid, ie. the way pixels are addressed, not reg->data, the pixels which are addressed. Clip against the size of the image. Do not allow negative positions, or positions outside the image.
vips_region_prepare
vips_region_prepare()
fills reg
with pixels. After calling,
you can address at least the area r
with VIPS_REGION_ADDR()
and get
valid pixels.
vips_region_shrink
Write the pixels target
in to
from the x2 larger area in from
.
Non-complex uncoded images and LABQ only. Images with alpha (see
vips_image_hasalpha()
) shrink with pixels scaled by alpha to avoid fringing.
vips_region_shrink_method
Write the pixels target
in to
from the x2 larger area in from
.
Non-complex uncoded images and LABQ only. Images with alpha (see
vips_image_hasalpha()
) shrink with pixels scaled by alpha to avoid fringing.
Methods inherited from VipsObject (27)
Please see VipsObject for a full list of methods.
Properties
Properties inherited from VipsObject (2)
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.