Rechercher une page de manuel
im_wrapone
Langue: en
Version: 154947 (fedora - 05/07/09)
Section: 3 (Bibliothèques de fonctions)
NAME
im_wrapone, im_wrapmany - easy interface to partial image IO systemSYNOPSIS
#include <vips/vips.h>int im_wrapone( IMAGE *in, IMAGE *out,
im_wrapone_fn fn, void *a, void *b )
int im_wrapmany( IMAGE **in, IMAGE *out,
im_wrapmany_fn fn, void *a, void *b )
where
typedef void (*im_wrapone_fn)( void *in, void *out, int n,
void *a, void *b )
typedef void (*im_wrapmany_fn)( void **in, void *out, int n,
void *a, void *b )
DESCRIPTION
These functions provide a simple way to use the VIPS partial image IO system, provided that your image processing function involves no coordinate transformations, that is, that each output PEL depends only upon the corresponding PEL(s) in the input image(s).You should write your operation as a buffer processing function --- for example:
static void
invert_buffer( unsigned char *in, unsigned char *out,
int width )
{
int x;
for( x = 0; x < width; x++ )
*out++ = 255 - *in++;
}
This can now be turned into a full PIO image processing function by:
int
invert( IMAGE *in, IMAGE *out )
{
if( in->BandFmt != FMTUCHAR ||
in->Coding != NOCODING ||
in->Bands != 1 ) {
im_errormsg( "invert: bad input" );
return( -1 );
}
if( im_cp_desc( out, in ) )
return( -1 );
if( im_wrapone( in, out,
(im_wrapone_fn) invert_buffer, NULL, NULL ) )
return( 0 );
}
im_wrapmany(3) works as im_wrapone(3), but allows many input images. All the inputs should be same Xsize and Ysize, but may vary in type. The array of input images should be NULL-terminated, as for im_start_many(3).
RETURN VALUE
All int-valued functions return zero on success and non-zero on error.COPYRIGHT
National Gallery, 1995AUTHOR
J. Cupitt - 9/2/95Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre