libvips/man/IM_IMAGE_ADDR.3
2009-01-23 12:03:11 +00:00

67 lines
1.6 KiB
Groff

.TH MACROS 3 "11 April 1990"
.SH NAME
IM_IMAGE_ADDR, IM_IMAGE_SIZEOF_ELEMENT, IM_IMAGE_SIZEOF_PEL,
IM_IMAGE_SIZEOF_LINE, IM_IMAGE_N_ELEMENTS \-
macros for images
.SH SYNOPSIS
.B #include <vips/vips.h>
int IM_IMAGE_SIZEOF_ELEMENT( im )
.br
IMAGE *im;
int IM_IMAGE_SIZEOF_PEL( im )
.br
IMAGE *im;
int IM_IMAGE_SIZEOF_LINE( im )
.br
IMAGE *im;
int IM_IMAGE_N_ELEMENTS( im )
.br
IMAGE *im;
char *IM_IMAGE_ADDR( im, x, y )
.br
IMAGE *im;
.br
int x;
.br
int y;
.SH DESCRIPTION
These macros help to simplify address arithmetic for images.
IM_IMAGE_SIZEOF_ELEMENT(3) returns sizeof( one band element ).
IM_IMAGE_SIZEOF_PEL(3) returns sizeof( one pel ).
IM_IMAGE_SIZEOF_LINE(3) returns sizeof( one horizontal line of pels ).
IM_IMAGE_N_ELEMENTS(3) returns the number of band elements across a horizontal line.
IM_IMAGE_ADDR(3) returns a pointer to the pixel at position (x,y) in the
image. The point (x,y) should lie within the image.
If the macro DEBUG has been defined, then IM_IMAGE_ADDR(3) will also
perform bounds checking. If you ask for the address of a pel outside the
image,
then IM_IMAGE_ADDR(3) will print an error message of the form:
IM_IMAGE_ADDR: point out of bounds, file "test.c", line 18
(point x=50, y=0
should have been within Rect left=0, top=0, width=50, height=50)
and call abort(3).
DEBUG needs to be defined *before* vips.h is included. Either define DEBUG
with -D in your Makefile, or have a #define DEBUG right at the top of your
file.
.SH COPYRIGHT
National Gallery, 1993
.SH SEE ALSO
IM_REGION_ADDR(3), im_malloc(3), im_open_local(3).
.SH AUTHOR
J. Cupitt \- 23/7/93