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

[C++Builder]   [ bool = ]imagekitcontrolname->Effect->YCCGamma(const TPoint * Points, const int Points_Size, double Yb, double Cr, double Cb)
[C++Builder]   [ bool = ]imagekitcontrolname->Effect->YCCGamma(double Yb, double Cr, double Cb)
[Delphi]   [ Boolean = ]imagekitcontrolname.Effect.YCCGamma(const Points: array of TPoint; Yb, Cr, Cb: Double)
[Delphi]   [ Boolean = ]imagekitcontrolname.Effect.YCCGamma(Yb, Cr, Cb: Double)

Parameters

Name Explanation
x An array of x coordinate values defining points of a polygonal area on the image. (in pixels) *(see Note below)
y An array of y coordinate values defining points of a polygonal area on the image. (in pixels) *(see Note below)
Points The number of points defining the polygonal area on the image.
Yb The gamma factor for the Y plane
Cr The gamma factor for the Cr plane
Cb The gamma factor for the Cb plane

Return Value

Returns True if successful, otherwise returns False.

Explanation

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

Where x is the input YCrCb value, y is the output YCrCb value and bright is the gamma factor for the Y, Cr and Cb planes. (The Yb, Cr, and Cb parameters respectively).

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

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

Before executing the YCCGamma 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.

When a 1, 4, or 8 bit image is processed, the SelectMode property must be set to process the total image (i.e. SelectMode= 1). 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