This method uses spline function to modifiy the YCrCb values of a raster image.

[Visual Basic] Public Function YCCSpline(spline As System.Drawing.Point, yb As Boolean, cr As Boolean, cb As Boolean) As Boolean
[C#] public bool YCCSpline(System.Drawing.Point[] spline, bool yb, bool cr, bool cb);

Parameters

spline
    Arrays of YCrCb values defining the x and y coordinates of points on the YCCSpline curve (from 0 to 255).
    The number of coordinates in the array ranges from 3 to 10

yb
   Affects the Y component (luminance) of the YCrCb value (False(0): does not affect the Y component, True( nonzero): affects the Y component)

cr
   Affects the Cr component (chrominance) of the YCrCb value (False(0): does not affect the Cr component, True( nonzero): affects the Cr component)

cb
   Affects the Cb component (chrominance) of the YCrCb value (False(0): does not affect the Cb component, True( nonzero): affects the Cb component)

Return Value

Returns True if successful. Returns False if unsuccessful.

Explanation

The YCCSpline method uses a spline function to modify the YCrCb values of a raster image. A spline function is a method of interpolating values that lay in between data points. In other words it produces a smooth curve from a limited set of points.

The YCCSpline method allows you to define the relationship between the input YCrCb values in the original image and output YCrCb values in the newly created image. You do this by specifying a set of coordinate points where the input YCrCb values are the x coordinates and the output YCrCb values are the y coordinates. These coordinate points are stored in arrays and passed to the YCCSpline method through the Spline parameter. The YCCSpline method then interpolates a "smooth" curve from these coordinate points. The graphic representation of this relationship between input YCrCb and output YCrCb values is known as the YCCSpline curve. A sample YCCSpline curve is shown in the diagram below:

In the above diagram, the default YCCSpline curve represents no change between input YCrCb values and output YCrCb values. In this case, the newly created image is exactly the same as the orginal image. The red YCCSpline curve represents an increase in contrast between the original image and the newly created image. It was generated from the following points:

          Point     (x values,y values)
          -----------------------------------------------------
          Point A     (0,0)
          Point B     (64,32)
          Point C     (128,128)
          Point D     (192,160)
          Point E     (255,255)

At the midpoint of the YCCSpline curve, the input YCrCb value of 128 equals the output YCrCb value of 128. At points below the midpoint, however, the output YCrCb values are lower than the input YCrCb values. This means that dark colors become darker. Conversely, at points above the midpoint, output YCrCb values are higher than input YCrCb values. This means that light colors become lighter. This particular YCCSpline curve therefore increases the contrast of the image.

An YCCSpline curve that decreases contrast could be defined with the following points:

          Point     (x values,y values)
          ----------------------------------------------------
          Point A     (0,0)
          Point B     (64, 96)
          Point C     (128,128)
          Point D     (225, 192)
          Point E     (255,255)

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

Before executing the YCCSpline 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 EffectMask. Set the mask image handle in the SourceMask property
  2. To process the total image, set the SelectMode property to EffectAll
  3. To process the polygonal area on the image, set the SelectMode property to EffectPolygon. Select the polygon by setting the appropriate coordinate values for the points of the polygon in the Point property
  4. To process an elliptical area on the image, set the SelectMode property to EffectEllipse. Select the ellipse by setting the appropriate values for the bounding rectangle in the Rect property

When the SelectMode property is set to EffectPolygon or EffectEllipse, the appropriate values must be set in the Inside property. When a 1, 4, or 8 bit image is processed, the total image will be processed regardless of the value set in the SelectMode property.

If the YCCSpline method is successful and the DestinationAsImageKitImage property is True, the resulting image will be set in the Image property or in the Layer(LayerNumber).Image property, according to the value set in the LayerNumber property.

If the YCCSpline method is successful and the DestinationAsImageKitImage property is False, the resulting image will be set in the DestinationImage property.

See Also

ImageKit.Effect Members | Newtone.ImageKit.Wpf.ImageKit

The ImageKit WPF is created by Newtone Corporation