pixel_iterator - Pixel iterator pattern support functions
MagickPassFail PixelIterateDualModify( PixelIteratorDualModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source_image, const long source_x, const long source_y, Image *update_image, const long update_x, const long update_y, ExceptionInfo *exception );
MagickPassFail PixelIterateDualNew( PixelIteratorDualNewCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source_image, const long source_x, const long source_y, Image *new_image, const long new_x, const long new_y, ExceptionInfo *exception );
MagickPassFail PixelIterateDualNew( PixelIteratorDualNewCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source_image, const long source_x, const long source_y, Image *new_image, const long new_x, const long new_y, ExceptionInfo *exception );
MagickPassFail PixelIterateDualRead( PixelIteratorDualReadCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *first_image, const long first_x, const long first_y, const Image *second_image, const long second_x, const long second_y, ExceptionInfo *exception );;
MagickPassFail PixelIterateMonoModify( PixelIteratorMonoModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const long x, const long y, const unsigned long columns, const unsigned long rows, Image *image, ExceptionInfo *exception );
MagickPassFail PixelIterateMonoRead( PixelIteratorMonoReadCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const long x, const long y, const unsigned long columns, const unsigned long rows, const Image *image, ExceptionInfo *exception );
MagickPassFail PixelIterateTripleModify( PixelIteratorTripleModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source1_image, const Image *source2_image, const long source_x, const long source_y, Image *update_image, const long update_x, const long update_y, ExceptionInfo *exception );
PixelIterateMonoRead() iterates through a region of an image and invokes a user-provided callback function ( of type PixelRowIteratorMonoReadCallback ) for a row of pixels. This is useful to support simple operations such as statistics computation.
The format of the PixelIterateMonoRead method is:
MagickPassFail PixelIterateMonoRead ( PixelIteratorMonoReadCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const long x, const long y, const unsigned long columns, const unsigned long rows, const Image *image, ExceptionInfo *exception );
A description of each parameter follows:
A user-provided C callback function which is passed the address of pixels from each image.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
The horizontal ordinate of the top left corner of the region.
The vertical ordinate of the top left corner of the region.
Width of pixel region
Height of pixel region
The address of the Image.
If an error is reported, this argument is updated with the reason.
PixelIterateMonoModify() iterates through a region of an image and invokes a user-provided callback function ( of type PixelIteratorMonoReadCallback ) for a region of pixels. This is useful to support simple operations such as level shifting, colorspace translation, or thresholding.
The format of the PixelIterateMonoModify method is:
MagickPassFail PixelIterateMonoModify ( PixelIteratorMonoModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const long x, const long y, const unsigned long columns, const unsigned long rows, Image *image, ExceptionInfo *exception );
A description of each parameter follows:
A user-provided C callback function which is passed the address of pixels from each image.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
The horizontal ordinate of the top left corner of the region.
The vertical ordinate of the top left corner of the region.
Width of pixel region
Height of pixel region
The address of the Image.
If an error is reported, this argument is updated with the reason.
PixelIterateDualRead() iterates through pixel regions of two images and invokes a user-provided callback function ( of type PixelIteratorDualReadCallback ) for each row of pixels. This is useful to support operations such as image comparison.
The format of the PixelIterateDualModify method is:
MagickPassFail PixelIterateDualRead ( PixelIteratorDualReadCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *first_image, const long first_x, const long first_y, const Image *second_image, const long second_x, const long second_y, ExceptionInfo *exception );;
A description of each parameter follows:
A user-provided C callback function which is passed the address of pixels from each image.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
Width of pixel region
Height of pixel region
The address of the first Image.
The horizontal ordinate of the top left corner of the first region.
The vertical ordinate of the top left corner of the first region.
The address of the second Image.
The horizontal ordinate of the top left corner of the second region.
The vertical ordinate of the top left corner of the second region.
If an error is reported, this argument is updated with the reason.
PixelIterateDualModify() iterates through pixel regions of two images and invokes a user-provided callback function ( of type PixelIteratorDualModifyCallback ) for each row of pixels. This is useful to support operations such as composition.
The format of the PixelIterateDualModify method is:
MagickPassFail PixelIterateDualModify ( PixelIteratorDualModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source_image, const long source_x, const long source_y, Image *update_image, const long update_x, const long update_y, ExceptionInfo *exception );
A description of each parameter follows:
A user-provided C callback function which reads from a region of source pixels and updates a region of destination pixels.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
Width of pixel region
Height of pixel region
The address of the constant source Image.
The horizontal ordinate of the top left corner of the source region.
The vertical ordinate of the top left corner of the source region.
The address of the update Image.
The horizontal ordinate of the top left corner of the update region.
The vertical ordinate of the top left corner of the update region.
If an error is reported, this argument is updated with the reason.
PixelIterateDualNew() iterates through pixel regions of two images and invokes a user-provided callback function ( of type PixelIteratorDualNewCallback ) for each row of pixels. This is used if a new output image is created based on an input image. The difference from PixelIterateDualModify ( ) is that the output pixels are not initialized so it is more efficient when outputting a new image.
The format of the PixelIterateDualNew method is:
MagickPassFail PixelIterateDualNew ( PixelIteratorDualNewCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source_image, const long source_x, const long source_y, Image *new_image, const long new_x, const long new_y, ExceptionInfo *exception );
A description of each parameter follows:
A user-provided C callback function which reads from a region of source pixels and initializes a region of destination pixels.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
Width of pixel region
Height of pixel region
The address of the constant source Image.
The horizontal ordinate of the top left corner of the source region.
The vertical ordinate of the top left corner of the source region.
The address of the new Image.
The horizontal ordinate of the top left corner of the new region.
The vertical ordinate of the top left corner of the new region.
If an error is reported, this argument is updated with the reason.
PixelIterateTripleModify() iterates through pixel regions of three images and invokes a user-provided callback function ( of type PixelIteratorTripleModifyCallback ) for each row of pixels. The first two images are read-only, while the third image is read-write for update. Access of the first two images is done lock-step using the same coordinates. This is useful to support operations such as image differencing.
The format of the PixelIterateTripleModify method is:
MagickPassFail PixelIterateTripleModify ( PixelIteratorTripleModifyCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source1_image, const Image *source2_image, const long source_x, const long source_y, Image *update_image, const long update_x, const long update_y, ExceptionInfo *exception );
A description of each parameter follows:
A user-provided C callback function which reads from a region of source pixels and updates a region of destination pixels.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
Width of pixel region
Height of pixel region
The address of the constant source 1 Image.
The address of the constant source 2 Image.
The horizontal ordinate of the top left corner of the source regions.
The vertical ordinate of the top left corner of the source regions.
The address of the update Image.
The horizontal ordinate of the top left corner of the update region.
The vertical ordinate of the top left corner of the update region.
If an error is reported, this argument is updated with the reason.
PixelIterateTripleNew()
iterates through pixel regions of three images and invokes a user-provided callback function (of type PixelIteratorTripleNewCallback) for each row of pixels. The first two images are read-only, while the third image is read-write for update. Access of the first two images is done lock-step using the same coordinates. This is used if a new output image is created based on two input images. The difference from PixelIterateTripleModify()
is that the output pixels are not initialized so it is more efficient when outputting a new image.
The format of the PixelIterateTripleNew method is:
MagickPassFail PixelIterateTripleNew( PixelIteratorTripleNewCallback call_back, const char *description, void *mutable_data, const void *immutable_data, const unsigned long columns, const unsigned long rows, const Image *source1_image, const Image *source2_image, const long source_x, const long source_y, Image *new_image, const long new_x, const long new_y, ExceptionInfo *exception)
A description of each parameter follows:
A user-provided C callback function which reads from a region of source pixels and initializes a region of destination pixels.
textual description of operation being performed.
User-provided mutable context data.
User-provided immutable context data.
Width of pixel region
Height of pixel region
The address of the constant source 1 Image.
The address of the constant source 2 Image.
The horizontal ordinate of the top left corner of the source regions.
The vertical ordinate of the top left corner of the source regions.
The address of the new Image.
The horizontal ordinate of the top left corner of the new region.
The vertical ordinate of the top left corner of the new region.
If an error is reported, this argument is updated with the reason.