The Ik10Effect.dll, Ik10EffectA.dll, Ik10Effect64.dll, and Ik10Effect64A.dll provides functions for applying imaging effects

The Ik10Effect.dll corresponds to the 32 bit Unicode version.
The Ik10EffectA.dll corresponds to the 32 bit ANSI version.
The Ik10Effect64.dll corresponds to the 64 bit Unicode version.
The Ik10Effect64A.dll corresponds to the 64 bit ANSI version.

The discussion below will use "Ik10Effect.dll" to refer to all 4 of these version dlls unless specifically noted.

 

Regarding RGB and YCrCb color space: The conversion between the RGB and YCrCb color space is performed internally by the IkEffect.dll. The formula for this conversion is given below:

 

Where Y is the luminance component, CrCb is the chrominance component comprising of Cb which specifies blueness and Cr which specifies redness.

   (1) From RGB to YCrCb
      Y = (0.29900 * R) + (0.58700 * G) + (0.11400 * B)
      Cr = (0.50000 * R) + (-0.41869 * G) + (-0.08131 * B) + 128
      Cb = (-0.16874 * R) + (-0.33126 * G) + (0.50000 * B) + 128

   (2) From YCrCb to RGB
      R = Y + (1.402 * (Cr - 128))
      G = Y - (0.34414 * (Cb - 128)) - (0.71414 * (Cr - 128))
      B = Y + (1.772 * (Cb - 128))

 

      Ik10Effect.dll Functions:

Function Name Explanation
IKAffine Performs image Affine changes
IKAntiAlias Performs image anti-alias
IKAutoSelectImage Uses a specified color (RGB value), and selects areas of the image that have that color.
IKAutoSelectImageEx Uses a specified color (RGB value), and selects areas of the image that have that color. (For Delphi and C++Builder)
IKBlur Blurs the image
IKCanvas Produces a canvas effect on the image
IKCheckSecretImage Retrieves the digital watermark from the image
IKChroma Processes image chrominance
IKConvertColor Increases or decreases the number of colors in an image
IKCustomFilter Creates a user defined effect filter
IKCutRectImage Allows a rectangular portion of an image to be copied without the use of a mask image
IKEmboss Embosses the image
IKEndDibAccess Ends DIB access
IKGetDibPixel Retrieves the pixel values from the DIB
IKGlassTile Produces an effect similar to glass tile on the image
IKLayer Layers raster images together
IKLayerEx Layers raster images together. (Allows alpha channel)
IKLens Produces a lens-like effect on the image
IKMakeRGBAImage Creates a 32-bit RGBA image from an image and an alpha channel
IKMosaic Produces a mosaic on the image
IKMotionBlur Produces a motion blur on the image
IKOilPaint Produces an effect similar to an oil painting on the image
IKOutline Produces an outline effect on the image
IKPanorama Makes a panorama image from several images
IKPasteImage Pastes raster image together
IKRedEyeRemoval Removes Red Eyes from images
IKRemoveNoise Processes noise reduction
IKResize Increases or decreases the image size
IKResizeEx Increases or decreases the image size. (For Delphi and C++Builder)
IKRGBGamma Modifies RGB values using a Gamma function
IKRGBLevel Increases and decreases RGB values
IKRGBRev Reverses RGB values
IKRGBSpline Modifies RGB values using a Spline function
IKRipple Produces a ripple like effect on the image
IKRotation Rotates the image
IKRotationEx Rotates the image. (For Delphi and C++Builder)
IKSelectImage Selects areas on the image for processing
IKSelectImageEx Selects areas on the image for processing. (For Delphi and C++Builder)
IKSetDibPixel Sets the DIB pixel values
IKSetGray Changes color images to grayscale
IKSetSecretImage Sets a digital watermark on the image
IKSharp Changes the image sharpness
IKSplitRGBAImage Splits a 32 bit RGBA image into a 24 bit RGB image and a 8 bit alpha channel
IKStartDibAccess Begins DIB access
IKUnifyColor Changes a range of color into a single color
IKWaves Produces a wave-like effect on the image
IKWhirlPinch Produces an effect similar to pinching the image then twisting your fingers
IKYCCGamma Modifies image YCrCb values using a Gamma function
IKYCCLevel Increases and decreases YCrCb values
IKYCCRev Reverses YCrCb values
IKYCCSpline Modifies YCrCb values using a Spline function

* Note: The ImageKit5 IK5Shade function has been renamed in the IKBlur function. (There is no change for the ImageKit6)

 

 

Structure definiton and explanation (User-defined types)

IKSELECT_IMAGE: This structure refers to images and mask images

(1)C++Builder/Visual C++
     typedef struct {
          HANDLE     hImgBmh;
          HANDLE     hMskBmh;
     } IKSELECT_IMAGE;
     typedef IKSELECT_IMAGE * PTR_IKSELECT_IMAGE;

(2)Delphi
     type
          IKSELECT_IMAGE = Record
               hImgBmh:        STHandle;
               hMskBmh        STHandle;
          end;

(3)Visual Basic
     Type IKSELECT_IMAGE
          hImgBmh        As Long
          hImgBmh        As Long
     End Type

A. Regarding the member variables of IKSELECT_IMAGE

hImgBmh:
This is the image handle of the image that is processed. (This argument must set with a valid image handle)
hMskBmh:
This is the image handle of the mask image that is used with the hImgBmh image. (Mask images determine which area of an image will be processed) When a mask image is not being used, set this member variable to 0 or NULL. A mask image must be a 1 bit black and white image. If image handles to other types of images are passed in this member variable, the function will return an error. The white area of the mask image determines the area on the image that is processed. The black area is the mask.

Note The images set in the hImgBmh and hMskBmh member variables must be the same height and width.

B. Regarding the return values of IKSELECT_IMAGE

hImgBmh:
This member variable returns the image handle of the resultant image. (The image created as a result of executing an IkEffect.dll function)
hMskBmh:
This member variable returns the image handle of the resultant mask image. (The mask image created as a result of executing an IkEffect.dll function)

 

IKDIB_INFO: This structure is used to access the Device Independent Bitmap (DIB)

(1)C++Builder/Visual C++
     typedef struct {
          BYTE     Pal;
          BYTE     Red;
          BYTE     Green;
          BYTE     Blue;
          char     Reserved[128];
     } IKDIB_INFO;
     typedef IKDIB_INFO * PTR_IKDIB_INFO;

(2)Delphi
     type
          IKDIB_INFO = Record
               Pal:        Byte;
               Red:        Byte;
               Green:     Byte;
               Blue:       Byte;
               Reserved:    array[0..127] of AnsiChar;
          end;

(3)Visual Basic
     Type IKDIB_INFO
          Pal        As Byte
          Red        As Byte
          Green      As Byte
          Blue       As Byte
          Reserved(0 To 127)  As Byte
     End Type

Pal:
The palette number
Red:
The RGB red value
Green:
The RGB green value
Blue:
The RGB blue value
Reserved:
A reserved area in the structure of 64 bytes(This is used internally by the ImageKit and should be ignored)

 

IKRECT: This structure refers to the coordinates of a rectangle, used by VisualBasic

Visual Basic
     Type IKRECT
          Left        As Long
          Top         As Long
          Right       As Long
          Bottom      As Long
     End Type

 

IKPOINT: This structure refers to x and y coordinates, used by VisualBasic

Visual Basic
     Type IKPOINT
          x        As Long
          y        As Long
     End Type

 

 

User Function Definition
In Visual Basic, create the User Function using a standard module NOT a form module.

Syntax
(1)C++Builder/Visual C++ BOOL __stdcall UserProc(short Percent);
(2)Delphi function UserProc(Percent: Smallint): LongBool; stdcall;
(3)Visual Basic Function UserProc(ByVal Percent As Integer) As Long

Parameters
Name        Explanation

------------------------------------------------------------------------------

Percent        The percent of the current process that is completed

Return Value
When False (0) is returned the execution is terminated. When True (nonzero) is returned the execution continues.

The User Function is explained using the term "UserProc". Although any name for the User Function would be appropriate, in our example the following syntax is used to pass parameters.

(1)C++Builder/Visual C++ UserProc
(2)Delphi LONG_PTR(Addr(UserProc)) or LONG_PTR(@UserProc)
(3)Visual Basic Address Of UserProc

 

The ImageKit10 ActiveX is a product created by Newtone Corporation