im_and(3)
NAME
im_paintrect, im_plotmask, im_readpoint, im_plotpoint, im_fastline,
im_fastlineuser - suck pels up, and paint them down somewhere else
SYNOPSIS
#include <vips/vips.h> int im_readpoint( im, x, y, ink ) IMAGE *im; int x, y; PEL *ink; int im_plotpoint( im, x, y, ink ) IMAGE *im; int x, y; PEL *ink; int im_plotmask( im, ix, iy, ink, mask, r ) IMAGE *im; int ix, iy; PEL *ink; PEL *mask; Rect *r; int im_paintrect( im, r, ink ) IMAGE *im; Rect *r; PEL *ink; int im_fastline( im, x1, y1, x2, y2, ink ) IMAGE *im; int x1, y1, x2, y2; PEL *ink; int im_fastlineuser( im, x1, y1, x2, y2, plot_fn, client1, client2, client3 ) IMAGE *im; int x1, y1, x2, y2; int (*plot_fn)(); void *client1, *client2, *client3; int plot_fn( im, x, y, client1, client2, client3 ) IMAGE *im; int x, y; void *client1, *client2, *client3; int im_lineset( IMAGE *in, IMAGE *out, IMAGE *mask, IMAGE *ink, int n, int *x1v, int *y1v, int *x2v, int *y2v )
DESCRIPTION
im_readpoint(3) sucks a pel from position (x,y) into a buffer; all
other functions paint that buffer back again in various ways. These
functions will work for an image of any type, since they rely on
im_readpoint(3) for their data. If you read a pel from one image and
paint with it to another, it is your responsibility to check that the
two images have identical pels.
All these functions are `in place,' that is, they write directly to the
output image! Be very careful, you can destroy data.
im_plotmask(3) takes an array of 0/255s and a Rect describing the size
and offset of the array. It adds (ix,iy) to the array offset, and then
paint pels into all array positions which are non-zero. Rect need not
lie inside the image - the function clips carefully at the edges.
im_paintrect(3) fills the rectangle described with ink. The Rect can be
any size and at any position - the function clipps against the edges of
the image.
im_fastline(3) is a replacement for im_line(3) which plots the specified ink in the image. The start and end points must lie entirely
inside the image.
im_fastlineuser(3) does not plot points, instead it calls a user plot
function for every position along the line. There is no clipping - the
endpoints may be anywhere at all. Three client values are carried
around and passed into the user function.
im_lineset(3) copies the image and draws a set of lines on the copy.
The lines are drawn using the mask image as a brush to apply the ink
image. Useful for nip2.
RETURN VALUE
All functions return 0 on success and -1 on error.
SEE ALSO
im_insertplace(3), im_smudge(3).
COPYRIGHT
National Gallery, 1992
AUTHOR
- J. Cupitt