`lqr_carver_scan`
Prev | Carver objects | Next

## Name

lqr_carver_scan, lqr_carver_scan_ext — read out a multi-size image one pixel at a time

## Synopsis

    #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`)`;

## Description

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.

## Return value

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`.

## See also

LqrColDepth(3), `lqr_carver_scan_reset`(3), `lqr_carver_scan_line`(3)

Prev | Up | Next
`lqr_carver_scan_reset` | Home | `lqr_carver_scan_by_row`