This method produces an interesting effect similar to pinching a raster image then twisting your fingers.

[Visual Basic]   [ Boolean = ]imagekitcontrolname.Effect.WhirlPinchVariant(x As Variant, y As Variant, Whirl As Double, Pinch As Double, Radius As Double, Red As Integer, Green As Integer, Blue As Integer)
[VB.NET]   [ Boolean = ]imagekitcontrolname.Effect.WhirlPinchVariant(ByRef x As Object, ByRef y As Object, Whirl As Double, Pinch As Double, Radius As Double, Red As Short, Green As Short, Blue As Short)
[C#.NET]   [ bool = ]imagekitcontrolname.Effect.WhirlPinchVariant(ref object x, ref object y, double Whirl, double Pinch, double Radius, short Red, short Green, short 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)
Whirl Sets the number of degrees of the twisting effect
Pinch Sets the "strength" of the pinch
Radius Sets the size of the area affected by the twisting effect (more than 0)
Red Sets the red component of the background color (from 0 to 255)
Green Sets the green component of the background color (from 0 to 255)
Blue Sets the blue component of the background color (from 0 to 255)
* 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 WhirlPinchVariant method creates an effect similar to pinching a raster image and then twisting your fingers.

This method is recommended when using scripting or other languages that require variant types or when using 64 bit builds in VB.NET or C#.

The Whirl parameter sets the number of degrees of the twisting effect. A value of 360 would mean that the twisting effect makes one complete revolution. The Radius parameter sets the size of the twisting effect on the image. As the Radius parameter increases in size, it affects larger areas on the image. Values of 2 or more could mean the the radius of the twisting effect is larger than the image itself. In this case the background color is used to fill any spaces that are outside of the orginal image. It is recommended that you set a Radius value of less than 1 so that the area affected remains within the image, then experiment with the Whirl parameter to get the desired effect. The Pinch parameter does exactly that, it pinches the area in the center of the twisting effect. A Pinch parameter of 1 will bring all of the colors together in the center. Values greater than 1 can "tear" the image in which case the background color is painted in the center.

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

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

WhirlPinch method.
The ImageKit10 ActiveX is a product created by Newtone Corporation