NAME
IM_IMAGE_ADDR, IM_IMAGE_SIZEOF_ELEMENT, IM_IMAGE_SIZEOF_PEL,
IM_IMAGE_SIZEOF_LINE, IM_IMAGE_N_ELEMENTS - macros for images
SYNOPSIS
#include <vips/vips.h>
int IM_IMAGE_SIZEOF_ELEMENT( im )
IMAGE *im;
int IM_IMAGE_SIZEOF_PEL( im )
IMAGE *im;
int IM_IMAGE_SIZEOF_LINE( im )
IMAGE *im;
int IM_IMAGE_N_ELEMENTS( im )
IMAGE *im;
char *IM_IMAGE_ADDR( im, x, y )
IMAGE *im;
int x;
int y;
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.
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 will also
perform bounds checking. If you ask for the address of a pel outside
the image, then 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.
COPYRIGHT
National Gallery, 1993
SEE ALSO
IM_REGION_ADDR(3), im_malloc(3), im_open_local(3).
AUTHOR
J. Cupitt - 23/7/93
11 April 1990 MACROS(3)