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
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
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
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
IKRotationEx Rotates the image. (For Delphi and C++Builder)
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
     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;

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
     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;

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)

 

User Function Definition

Syntax
(1)C++Builder BOOL __stdcall UserProc(short Percent);
(2)Delphi function UserProc(Percent: Smallint): LongBool; stdcall;

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 UserProc
(2)Delphi LONG_PTR(Addr(UserProc)) or LONG_PTR(@UserProc)

 

The ImageKit10 VCL is a product created by Newtone Corporation