This method uses gamma correction to adjust the RGB values of a raster image.

[C++Builder]   [ bool = ]imagekitcontrolname->Effect->RGBGamma(const TPoint * Points, const int Points_Size, double Red, double Green, double Blue)
[C++Builder]   [ bool = ]imagekitcontrolname->Effect->RGBGamma(double Red, double Green, double Blue)
[Delphi]   [ Boolean = ]imagekitcontrolname.Effect.RGBGamma(const Points: array of TPoint; Red, Green, Blue: Double)
[Delphi]   [ Boolean = ]imagekitcontrolname.Effect.RGBGamma(Red, Green, Blue: Double)

Parameters

Name Explanation
Points An array of x and y coordinate values defining points of a polygonal area on the image. (in pixels)
In C++Builder, the size of the Points array is given by Points_Size - 1
Red The gamma factor for the red plane
Green The gamma factor for the green plane
Blue The gamma factor for the blue plane

Return Value

Returns True if successful, otherwise returns False.

Explanation

The RGBGamma method uses gamma correction to adjust the RGB values and overall brightness of a raster image. The formula used to calculate the output is given below:

Where x is the input RGB value, y is the output RGB value and bright is the gamma factor for the red, green and blue planes. (The Red, Green, and Blue parameters respectively).

When the Red, Green, and Blue parameters all equal 0, the input RGB values and output RGB values are equal meaning there is no change in the image. As the Red, Green, or Blue parameters increase in a positive direction, the output RGB values become lower than the input RGB values. As the Red, Green, or Blue parameters increase in a negative direction, the output RGB values become higher than the input RGB values. Please refer to the diagram below which shows the change in RGB values for a gamma factor of 1 and also for a gamma factor of -1.

To execute the RGBGama method, set the image handle of the image in the ImageHandle property or the Layer(LayerNo).ImageHandle property. The RGBGamma method supports 1, 4, 8, 16, 24, and 32 bit images.

Before executing the RGBGamma method, you must set the area on the image that will be affected. There are 4 ways to do this.

  1. To use a mask image, set the SelectMode property to vikEffectMask. Set the mask image handle in the MaskImageHandle property
  2. To process the total image, set the SelectMode property to vikEffectAll.
  3. To process the polygonal area on the image, set the SelectMode property to vikEffectPolygon. Select the polygon by setting the appropriate coordinate values for the points of the polygon in the Points array. The number of points defining the polygon must be 3 or more.
  4. To process an elliptical area on the image, set the SelectMode property to vikEffectEllipse. Select the ellipse by setting the appropriate values for the bounding rectangle in the RectLeft, RectTop, RectRight, and RectBottom properties

When the SelectMode property is set to vikEffectPolygon or vikEffectEllipse, the InOut property should be set. When the SelectMode property is set to values other than vikEffectPolygon, please set the Points parameter to a dummy array or to NULL.

If successful the resulting raster image data is set in the LayerNo property (the ImageHandle property or the Layer(LayerNo).ImageHandle property. If unsuccessful, 0 is returned.

When the Caption, Message, and ButtonName properties are blank, the progress dialog box will not be displayed. When the progress dialog box is displayed, the percentage that the processing has completed will be shown in the dialog box.

Differences from the ImageKit 7/8/9/10 ActiveX

The parameters x, y have been changed to type TPoint
In Delphi, it is not necessary to pass the size of the array of x, y points.

The ImageKit10 VCL is a product created by Newtone Corporation