The CustomFilterVariant method allows you to create a custom effects filter for raster images.

[Visual Basic]   [ Boolean = ]imagekitcontrolname.Effect.CustomFilter(x As Variant, y As Variant, Matrix As Variant, Div As Integer, Level As Integer, Red As Boolean, Green As Boolean, Blue As Boolean)
[VB.NET]   [ Boolean = ]imagekitcontrolname.Effect.CustomFilter(ByRef x As Object, ByRef y As Object, ByRef Matrix As Object, Div As Short, Level As Short, Red As Boolean, Green As Boolean, Blue As Boolean)
[C#.NET]   [ bool = ]imagekitcontrolname.Effect.CustomFilter(ref object x, ref object y, ref object Matrix, short Div, short Level, bool Red, bool Green, bool Blue)

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)
Matrix 9x9 matrix (an array of 81 items ranging from 0 to 80). * (see Note below)
Div The division factor
Level The bias factor (from 0 to 255, as this factor increases, the color becomes brighter)
Red To process the red plane, set toTrue (nonzero), otherwise set to False (0)
Green To process the green plane, set toTrue (nonzero), otherwise set to False (0)
Blue To process the blue plane, set toTrue (nonzero), otherwise set to False (0)
* NOTE for retrieving array values:
In Visual Basic / VB.NET, if the array is defined as Dim x(0 To 2), then the arguments are returned in x.
In C#.NET the arguments are returned in ref x.

Return Value

Returns True (nonzero) if successful, otherwise returns False (0).

Explanation

The CustomFilterVariant method allows you to create a custom effects filter for raster images. This method is recommended when using scripting or other languages that require variant types. An effects filter alters each pixel's color based on its current color and the colors of any neighboring pixels. (See the explanation of the filter matrix below.)

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

Before executing the CustomFilterVariant 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 0. Set the mask image handle in the MaskImageHandle property
  2. To process the total image, set the SelectMode property to 1
  3. To process the polygonal area on the image, set the SelectMode property to 2. Select the polygon by setting the appropriate coordinate values for the points of the polygon in two arrays, one array for the x coordinate values and one array for the y coordinate values. The pass these arrays to the x and y arguments of the CustomFilter method. 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 3. 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 values other than 2 (ikEffectPolygon), please set dummy arrays in the x and y parameters. When processing a grayscale image the Red, Green and Blue parameter values are disabled. (dummy values). When the SelectMode property is set to 2 or 3, the appropriate value must be set in the InOut property. 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.

Also see the CustomFilter method.

 

The filter consists of an array of coefficients called a filter matrix. A filter processes an image on a pixel-by-pixel basis. Each pixel's color value is multiplied by the coefficient in the matrix center, and any pixels within the matrix are multiplied by the corresponding coefficients. The sum of the products becomes the target pixel's new value. To make the filter matrix, it is necessary to create an array containing 80 elements and set the appropriate coefficient values in the array elements. The formula used to calculate the target pixel's value is given below:



Where F is the output value of the target pixel, Pi is a pixel in the grid, and Ci is a coefficient in the matrix. Div is the division factor which allows you to achieve effects that would otherwise require decimal coefficients. Level is a bias factor. You use the bias to shift the value of each pixel by a fixed amount. As the bias factor increases, the resultant color is brighter. Bias adjustments are particularly useful for creating embossing effects.

Some sample matrix are given below:





 

The ImageKit10 ActiveX is a product created by Newtone Corporation