lqr_carver_scan(3) read out a multi-size image one pixel at a time

Other Alias



#include <lqr.h>

gboolean lqr_carver_scan(LqrCarver* carver, gint* x, gint* y, guchar** rgb);
gboolean lqr_carver_scan_ext(LqrCarver* carver, gint* x, gint* y, void** rgb);


The functions lqr_carver_scan and lqr_carver_scan_ext are used to read out the multi-size image contained in the LqrCarver object pointed to by carver one pixel at a time. They store the pixel coordinates in the variables pointed to by x and y, and the pixel content in the array pointed to by rgb; then they move the readout pointer to the next pixel, or they reset it if the end of the image is reached.

The first one must only be used on the LqrCarver objects created with lqr_carver_new, i.e. with 8-bit images, while the second one is general (see LqrColDepth(3)), but the rgb pointer must be cast to the appropriate type to be used (i.e pass the address of a pointer to void to the function lqr_carver_scan_ext, then cast it to a pointer of the appropriate type and use this last one for reading the output).

The rgb variable will point to an array which is internal to the LqrCarver object, so there is no need to allocate memory for it. However, it should only be accessed right after a call to the scan functions, and writing to it must be avoided.


These functions return TRUE in case the readout is successful and the end of the image was not reached, FALSE otherwise. If lqr_carver_scan is called over a non-8-bit LqrCarver object, it will return FALSE.


Copyright © 2007-2009 Carlo Baldassi