ImageGear for C and C++ on Windows v19.10 - Updated
IG_pixel_value_set
API Reference Guide > Core Component API Reference > Core Component Functions Reference > Pixel Functions > IG_pixel_value_set

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.