lqr_carver_get_energy_image - get the energy map for a LqrCarver object
LqrRetVal lqr_carver_get_energy(LqrCarver* carver, gfloat * buffer,
LqrRetVal lqr_carver_get_true_energy(LqrCarver* carver,
gfloat * buffer,
LqrRetVal lqr_carver_get_energy(LqrCarver* carver, void * buffer,
The function lqr_carver_get_energy writes the energy map of the
LqrCarver object pointed to by carver to the given buffer, in a format
suitable for plotting: all values are in the range between 0 and 1, and
the true values are mapped nonlinearly and stretched on this whole
range, so that the differences between the middle values are enhanced
with respect to very high or very low values.
The orientation parameter must be either 0 to get the energy map used
for horizontal scalings, or 1 to get the map for vertical scalings.
The buffer must be allocated by the user before calling this function,
and its size must be at least width * height, where width and height
are the current width and height of the carver. The energy values are
ordered by row first, then by column.
The outcome will include the effect of the bias added to the carver, if
This function can be called over non-initialised LqrCarver objects,
e.g. to provide previews on the effect of different energy functions,
but it can also be invoked at any later time. Note, however, that in
this latter case the carver could be flattened if necessary, therefore
the function invocation is potentially destructive of the internal
The function lqr_carvet_get_true_energy is identical to the previous
one, but the resulting buffer will contain the true energy, not scaled
The function lqr_carver_get_energy_image is very similar to the
function lqr_carveR_get_energy, but it can be used to fill directly an
image buffer of the format specified through the additional parameters
col_depth and image_type (see LqrColDepth(3) and LqrImageType(3)). The
buffer must be passed as void*, but it must point to a memory area with
sufficient allocated space for the chosen image type and colour depth.
The image type cannot be LQR_CUSTOM_IMAGE.
For any choice of the parameters describing the image, the resulting
buffer will hold a greyscale image, ranging from black (lowest energy)
to white (highest energy). The opacity (alpha) will be set to 1, if
present. All the information will be stored in the black channel in
LQR_CMYK_IMAGE and LQR_CMYKA_IMAGE image types.
The return values follow the Liquid Rescale library signalling system.
The function lqr_carver_get_energy_image will return an error if
image_type is LQR_CUSTOM_IMAGE.
Copyright © 2007-2009 Carlo Baldassi