This function updates the value for the specified channel.
Declaration:
|
Copy Code
|
AT_VOID ACCUAPI IG_pixel_value_set(
HIGPIXEL hPixel,
AT_INT channel,
AT_UINT value
);
|
Arguments:
Name |
Type |
Description |
hPixel |
HIGPIXEL |
Handle of pixel object. |
channel |
AT_INT |
Channel index for which to set value. |
value |
AT_UINT |
Value to set (range depends on channel bit depth). |
Return Value:
N/A
Supported Raster Image Formats:
All pixel formats supported by ImageGear for C and C++.
Sample:
Pixel Access
Example:
|
Copy Code
|
AT_ERRCOUNT nErrcount; /* Number of errors on stack */
HIGEAR hImage; /* Handle of image */
HIGPIXEL hPix; /* Handle of pixel */
AT_DIMENSION w, h; /* Width and height of image */
AT_INT nChannels; /* Number of channels in image */
AT_DIMENSION x, y; /* Used to loop over image */
AT_INT c; /* Used to loop over channels */
AT_INT nDepth; /* Channel depth */
AT_UINT inverted; /* Inverted channel value */
/* Invert colors in upper-left quadrant of image */
nErrcount = IG_load_file("test.jpg", &hImage);
nErrcount = IG_image_channel_count_get(hImage, &nChannels);
nErrcount = IG_image_dimensions_get(hImage, &w, &h, NULL);
for (y = 0; y < h / 2; y++)
for (x = 0; x < w / 2; x++)
{
nErrcount = IG_DIB_pix_get(hImage, x, y, &hPix);
for (c = 0; c < nChannels; c++)
{
IG_image_channel_depth_get(hImage, c, &nDepth);
nDepth = (1 << nDepth) - 1;
inverted = nDepth - IG_pixel_value_get(hPix, c);
IG_pixel_value_set(hPix, c, inverted);
}
nErrcount = IG_DIB_pix_set(hImage, x, y, hPix);
IG_pixel_delete(hPix);
}
nErrcount = IG_save_file(hImage, OUTPUT_FILENAME,
IG_SAVE_BMP_UNCOMP);
IG_image_delete(hImage);
|
Remarks:
The range of possible values depends on the bit depth of the channel.