2641 lines
70 KiB
Plaintext
2641 lines
70 KiB
Plaintext
(* ImageEn Build 7.0.0.06.2637 @ 7-4-17 14:58:42.679 *)
|
|
(*
|
|
Copyright (c) 1998-2017 by Carlotta Calandra. All rights reserved.
|
|
Copyright (c) 2011-2017 by Xequte Software.
|
|
|
|
This software comes without express or implied warranty.
|
|
In no case shall the author be liable for any damage or unwanted behavior of any
|
|
computer hardware and/or software.
|
|
|
|
Author grants you the right to include the component
|
|
in your application, whether COMMERCIAL, SHAREWARE, or FREEWARE.
|
|
|
|
ImageEn, IEvolution and ImageEn ActiveX may not be included in any
|
|
commercial, shareware or freeware libraries or components.
|
|
|
|
www.ImageEn.com
|
|
*)
|
|
|
|
(*
|
|
File version 1028
|
|
*)
|
|
|
|
|
|
unit hyiedefs;
|
|
|
|
{$R-}
|
|
{$Q-}
|
|
|
|
{$I ie.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$ifdef IEHASUITYPES} System.UITypes, {$endif}
|
|
Windows, Messages, Classes, SysUtils, Graphics, StdCtrls;
|
|
|
|
|
|
const
|
|
clNone_ = Graphics.clNone; // Avoid confusion with clNone
|
|
|
|
// version details
|
|
IEMAINVER = 700;
|
|
IEMAINVERSION: string = '7.0.0';
|
|
IEMAINDATEDD = 6;
|
|
IEMAINDATEMM = 4;
|
|
IEMAINDATEYY = 2017;
|
|
|
|
IEM_UPDATE = WM_USER + 7000; // message to TImageEnView for Update
|
|
|
|
// messages from TImageEnIO.DShowParams
|
|
IEM_NEWFRAME = WM_USER + 7001;
|
|
IEM_EVENT = WM_USER + 7002;
|
|
|
|
// async OnProgress/OnFinishWork messages
|
|
IEM_PROGRESS = WM_USER + 7003;
|
|
IEM_FINISHWORK = WM_USER + 7004;
|
|
|
|
IEWM_MOUSEHWHEEL = $020E;
|
|
|
|
// Auto-scrolling in IEMView
|
|
IEM_AUTOSCROLL = WM_User + 7005;
|
|
|
|
// messages from TImageEnIO.MediaFoundation
|
|
IEM_MEDIAFOUNDATION = WM_USER + 7006;
|
|
|
|
IEENTRYFORVARIABLECURSOR = 1815;
|
|
|
|
IEPrint_Preview_Margin_Color = clSilver;
|
|
|
|
|
|
Supported_AVI_File_Extensions = '*.avi;';
|
|
{$ifdef IEINCLUDEDIRECTSHOW}
|
|
Supported_MPEG_File_Extensions = '*.mpe;*.mpg;*.mpeg;';
|
|
Supported_WMV_File_Extensions = '*.wmv;';
|
|
{$ELSE}
|
|
Supported_MPEG_File_Extensions = '';
|
|
Supported_WMV_File_Extensions = '';
|
|
{$ENDIF}
|
|
Supported_Video_File_Extensions = Supported_AVI_File_Extensions + Supported_MPEG_File_Extensions + Supported_WMV_File_Extensions;
|
|
|
|
ALL_KNOWN_EXPLORER_VIDEO_FORMATS = '*.AVI;*.MPG;*.MPE;*.MPEG;*.WMV;*.ASF;*.IVF;*.WM;*.MP4;*.MOV;*.QT;*.RM;*.M2TS;*.MTS;*.MOD;';
|
|
|
|
Default_GIF_Animation_Delay_MS = 100; // 100 milliseconds: Default delay for animated images that do not have an explicit delay interval - in line with most browsers
|
|
|
|
CM_per_Inch = 2.54; // For imperial to metric conversion
|
|
|
|
Trackbar_Thumb_Length = 20; // height of thumb draggers in preview dialogs
|
|
|
|
// defines IECMYKPROFILE const
|
|
{$WARNINGS OFF}
|
|
{$I table1.inc}
|
|
{$WARNINGS ON}
|
|
|
|
{$IFDEF UNICODE}
|
|
IEDLLWNameExt = 'W';
|
|
{$ELSE}
|
|
IEDLLWNameExt = 'A';
|
|
{$ENDIF}
|
|
|
|
{$ifdef IEOLDSEEKDEF}
|
|
soCurrent = soFromCurrent;
|
|
soBeginning = soFromBeginning;
|
|
soEnd = soFromEnd;
|
|
{$endif}
|
|
|
|
|
|
// consts used by TImageEnProc.TextOut
|
|
Align_Text_Top = 0;
|
|
Align_Text_Near_Top = -901;
|
|
Align_Text_Vert_Center = -902;
|
|
Align_Text_Near_Bottom = -903;
|
|
Align_Text_Bottom = -904;
|
|
|
|
Align_Text_Left = Align_Text_Top;
|
|
Align_Text_Near_Left = Align_Text_Near_Top;
|
|
Align_Text_Horz_Center = Align_Text_Vert_Center;
|
|
Align_Text_Near_Right = Align_Text_Near_Bottom;
|
|
Align_Text_Right = Align_Text_Bottom;
|
|
|
|
|
|
resourcestring
|
|
IERS_IEVISIONNOTFOUND = 'ievision.dll, ievision32.dll, ievision64.dll, ielib.dll, ielib32.dll or ielib64.dll not found';
|
|
|
|
|
|
type
|
|
TIEScrollStyle = {$ifdef DelphiXE3orNewer}System.UITypes.{$endif}TScrollStyle;
|
|
|
|
{!!
|
|
<FS>EIEException
|
|
|
|
<FM>Declaration<FC>
|
|
EIEException = class(Exception);
|
|
|
|
<FM>Description<FC>
|
|
Generic ImageEn exception
|
|
!!}
|
|
EIEException = class(Exception);
|
|
|
|
{!!
|
|
<FS>TIEAntialiasMode
|
|
|
|
<FM>Declaration<FC>
|
|
TIEAntialiasMode = (ierNone, ierFast, ierBilinear, ierBicubic);
|
|
|
|
<FM>Description<FN>
|
|
Specifies the anti-aliasing algorithm that is used to improve quality when rotating images:
|
|
ierNone : No anti-aliasing (lowest quality)
|
|
ierFast : Fast but lower quality
|
|
ierBilinear : Bilinear, high quality
|
|
ierBicubic : Bicubic, highest quality
|
|
!!}
|
|
TIEAntialiasMode = (ierNone, ierFast, ierBilinear, ierBicubic);
|
|
|
|
{!!
|
|
<FS>TFlipDir
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TFlipDir = (fdHorizontal, fdVertical);
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEMagnifyStyle
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEMagnifyStyle = (iemRectangle, iemEllipse);
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEMagnifySource
|
|
|
|
<FM>Declaration<FC>
|
|
TIEMagnifySource = (iemBackgroundLayer, iemCanvas);
|
|
|
|
<FM>Description<FN>
|
|
iemBackgroundLayer: gets data from the background layer.
|
|
iemCanvas: gets data from the painted background.
|
|
|
|
To magnify the layer 0 image by getting the pixels directly from the bitmap, use iemBackgroundLayer.
|
|
!!}
|
|
TIEMagnifySource = (iemBackgroundLayer, iemCanvas);
|
|
|
|
|
|
{!!
|
|
<FS>TIELayerMagnification
|
|
|
|
<FM>Declaration<FC>
|
|
TIELayerMagnification = record
|
|
Enabled: boolean;
|
|
Rate: double;
|
|
Style: <A TIEMagnifyStyle>;
|
|
Source: <A TIEMagnifySource>;
|
|
end;
|
|
|
|
<FM>Description<FN>
|
|
Properties allowing a layer to be used for magnification.
|
|
<TABLE>
|
|
<R> <H>Field</H> <H>Description</H> </R>
|
|
<R> <C>Enabled</C> <C>If true this is a magnify layer. The bitmap of the layer is filled with the background zoomed according to Rate field. This property doesn't apply to layer 0. Default: False</C> </R>
|
|
<R> <C>Rate</C> <C>The rate of the magnify layer (magnification). Allowed values greather than 1. Valid only if Enabled=True. This property doesn't apply to layer 0. Default: 2</C> </R>
|
|
<R> <C>Style</C> <C>The magnify layer shape. Valid only if Enabled=True. This property doesn't apply to layer 0. Default: iemRectangle</C> </R>
|
|
<R> <C>Source</C> <C>The magnify layer source. Default: iemCanvas</C> </R>
|
|
</TABLE>
|
|
!!}
|
|
TIELayerMagnification = record
|
|
Enabled: boolean;
|
|
Rate: double; // must be >= 1
|
|
Style: TIEMagnifyStyle;
|
|
Source: TIEMagnifySource;
|
|
end;
|
|
|
|
|
|
{!!
|
|
<FS>TIEColorSpace
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEColorSpace = (iecmsRGB, iecmsBGR, iecmsCMYK, iecmsCMYK6, iecmsCIELab, iecmsGray8, iecmsRGB48, iecmsRGB48_SE, iecmsYCBCR);
|
|
{!!}
|
|
|
|
|
|
|
|
{!!
|
|
<FS>TIEFileDragDropActions
|
|
|
|
<FM>Declaration<FC>
|
|
TIEFileDragDropActions = set of (ieddCopy, ieddMove);
|
|
|
|
<FM>Description<FN>
|
|
Used by <A TImageEnFolderMView.AutoDragFiles> and <A TImageEnFolderMView.AutoDropFiles>.
|
|
!!}
|
|
TIEFileDragDropActions = set of (iedaCopy, iedaMove);
|
|
|
|
|
|
|
|
{$ifdef FPC}
|
|
TCMWantSpecialKey = TWMKey;
|
|
{$endif}
|
|
|
|
|
|
PBitmapInfoHeader256 = ^TBitmapInfoHeader256;
|
|
|
|
{$ifdef WIN64}
|
|
TIESizeT = uint64;
|
|
{$else}
|
|
TIESizeT = DWORD;
|
|
{$endif}
|
|
|
|
|
|
|
|
{!!
|
|
<FS>PPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
PPointArray = ^<A TPointArray>;
|
|
!!}
|
|
PPointArray = ^TPointArray;
|
|
|
|
{!!
|
|
<FS>PIEPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
PIEPointArray = ^<A TIEPointArray>;
|
|
!!}
|
|
PIEPointArray = ^TIEPointArray;
|
|
|
|
{!!
|
|
<FS>PPointerArray
|
|
|
|
<FM>Declaration<FC>
|
|
PPointerArray = ^<A TPointerArray>;
|
|
!!}
|
|
PPointerArray = ^TPointerArray;
|
|
|
|
|
|
TIEArrayOfTPoint = array of TPoint;
|
|
|
|
TIEArrayOfAnsiChar = array of AnsiChar;
|
|
|
|
{!!
|
|
<FS>PDoubleArray
|
|
|
|
<FM>Declaration<FC>
|
|
PDoubleArray = ^<A TDoubleArray>;
|
|
!!}
|
|
PDoubleArray = ^TDoubleArray;
|
|
|
|
{!!
|
|
<FS>PDWordArray
|
|
|
|
<FM>Declaration<FC>
|
|
PDWordArray = ^<A TDWordArray>;
|
|
!!}
|
|
PDWordArray = ^TDWordArray;
|
|
|
|
|
|
{!!
|
|
<FS>PSingleArray
|
|
|
|
<FM>Declaration<FC>
|
|
PSingleArray = ^<A TSingleArray>;
|
|
!!}
|
|
PSingleArray = ^TSingleArray;
|
|
|
|
|
|
{!!
|
|
<FS>PRGBA
|
|
|
|
<FM>Declaration<FC>
|
|
PRGBA = ^<A TRGBA>;
|
|
!!}
|
|
PRGBA = ^TRGBA;
|
|
|
|
|
|
|
|
{!!
|
|
<FS>PIERGBAPalette
|
|
|
|
<FM>Declaration<FC>
|
|
PIERGBAPalette = ^<A TIERGBAPalette>;
|
|
!!}
|
|
PIERGBAPalette = ^TIERGBAPalette;
|
|
|
|
|
|
{!!
|
|
<FS>PRGB
|
|
|
|
<FM>Declaration<FC>
|
|
type PRGB = ^<A TRGB>;
|
|
!!}
|
|
PRGB = ^TRGB;
|
|
|
|
|
|
{!!
|
|
<FS>PIERGBPalette
|
|
|
|
<FM>Declaration<FC>
|
|
PIERGBPalette = ^<A TIERGBPalette>;
|
|
!!}
|
|
PIERGBPalette = ^TIERGBPalette;
|
|
|
|
|
|
{!!
|
|
<FS>PCMYK
|
|
|
|
<FM>Declaration<FC>
|
|
PCMYK = ^<A TCMYK>;
|
|
!!}
|
|
PCMYK = ^TCMYK;
|
|
|
|
|
|
{!!
|
|
<FS>PCIELAB
|
|
|
|
<FM>Declaration<FC>
|
|
PCIELAB = ^<A TCIELAB>;
|
|
!!}
|
|
PCIELAB = ^TCIELAB;
|
|
|
|
|
|
{!!
|
|
<FS>PCIELABROW
|
|
|
|
<FM>Declaration<FC>
|
|
PCIELABROW = ^<A TCIELABROW>;
|
|
!!}
|
|
PCIELABROW = ^TCIELABROW;
|
|
|
|
|
|
{!!
|
|
<FS>PYCBCR
|
|
|
|
<FM>Declaration<FC>
|
|
PYCBCR = ^<A TYCBCR>;
|
|
!!}
|
|
PYCBCR = ^TYCBCR;
|
|
|
|
|
|
{!!
|
|
<FS>PCMYKROW
|
|
|
|
<FM>Declaration<FC>
|
|
PCMYKROW = ^<A TCMYKROW>;
|
|
!!}
|
|
PCMYKROW = ^TCMYKROW;
|
|
|
|
|
|
{!!
|
|
<FS>PRGBROW
|
|
|
|
<FM>Declaration<FC>
|
|
type PRGBROW = ^<A RGBROW>;
|
|
!!}
|
|
PRGBROW = ^RGBROW;
|
|
|
|
{!!
|
|
<FS>PRGB32ROW
|
|
|
|
<FM>Declaration<FC>
|
|
type PRGB32ROW = ^<A RGB32ROW>;
|
|
!!}
|
|
PRGB32ROW = ^RGB32ROW;
|
|
|
|
{!!
|
|
<FS>PRGB48ROW
|
|
|
|
<FM>Declaration<FC>
|
|
PRGB48ROW = ^<A TRGB48ROW>;
|
|
!!}
|
|
PRGB48ROW = ^TRGB48ROW;
|
|
|
|
{!!
|
|
<FS>PBYTEROW
|
|
|
|
<FM>Declaration<FC>
|
|
PBYTEROW = ^<A TBYTEROW>;
|
|
!!}
|
|
PBYTEROW = ^TBYTEROW;
|
|
|
|
{!!
|
|
<FS>PBYTEROWS
|
|
|
|
<FM>Declaration<FC>
|
|
PBYTEROWS = ^<A TBYTEROWS>;
|
|
!!}
|
|
PBYTEROWS = ^TBYTEROWS;
|
|
|
|
{!!
|
|
<FS>pIntegerArray
|
|
|
|
<FM>Declaration<FC>
|
|
pIntegerArray = ^<A IntegerArray>;
|
|
!!}
|
|
pIntegerArray = ^IntegerArray;
|
|
|
|
{!!
|
|
<FS>pint64array
|
|
|
|
<FM>Declaration<FC>
|
|
pint64array = ^<A int64array>;
|
|
!!}
|
|
pint64array = ^int64array;
|
|
|
|
{!!
|
|
<FS>PPRGBArray
|
|
|
|
<FM>Declaration<FC>
|
|
type PPRGBArray = ^<A PRGBArray>;
|
|
!!}
|
|
PPRGBArray = ^PRGBArray;
|
|
|
|
{!!
|
|
<FS>pboolean
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
pboolean = ^boolean;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TIEArrayOfDouble
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfDouble = array of double;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEArrayOfSingle
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfSingle = array of single;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>PProgressRec
|
|
|
|
<FM>Declaration<FC>
|
|
PProgressRec = ^<A TProgressRec>;
|
|
!!}
|
|
PProgressRec = ^TProgressRec;
|
|
|
|
PIEDouble = ^double;
|
|
|
|
|
|
{$ifndef IEHASUINT64}
|
|
uint64 = int64;
|
|
{$endif}
|
|
|
|
|
|
// DRAWDIB TYPES
|
|
hDrawDib = THandle;
|
|
TDrawDibTime = record
|
|
timeCount: LongInt; // see below
|
|
timeDraw: LongInt; // time to draw bitmaps
|
|
timeDecompress: LongInt; // time to decompress bitmaps
|
|
timeDither: LongInt; // time to dither bitmaps
|
|
timeStretch: LongInt; // time to stretch bitmaps
|
|
timeBlt: LongInt; // time to transfer bitmaps (BitBlt)
|
|
timeSetDIBits: LongInt; // time to transfer bitmaps (SetDIBits)
|
|
end;
|
|
|
|
// TBitmapInfoHeader + palette 256 colors
|
|
TBitmapInfoHeader256 = packed record
|
|
biSize: DWORD;
|
|
biWidth: Longint;
|
|
biHeight: Longint;
|
|
biPlanes: Word;
|
|
biBitCount: Word;
|
|
biCompression: DWORD;
|
|
biSizeImage: DWORD;
|
|
biXPelsPerMeter: Longint;
|
|
biYPelsPerMeter: Longint;
|
|
biClrUsed: DWORD;
|
|
biClrImportant: DWORD;
|
|
Palette: array[0..1] of TRGBQUAD;
|
|
end;
|
|
|
|
{!!
|
|
<FS>TPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TPointArray = array[0..Maxint div 16] of Windows.TPoint;
|
|
{!!}
|
|
|
|
|
|
// Why this? Because C++Builder doesn't want TPointArray or PPointArray for variable declarations (not function members)
|
|
{!!
|
|
<FS>TIEPoint
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEPoint = record
|
|
X: Longint;
|
|
Y: Longint;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIE2DPoint
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIE2DPoint = record
|
|
X: double;
|
|
Y: double;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEDRectangle
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEDRectangle = array [0..1] of TIE2DPoint;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TIEDRotatedRectangle
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEDRotatedRectangle = array [0..3] of TIE2DPoint;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIE2DPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIE2DPointArray = array of TIE2DPoint;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIE3DPoint
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIE3DPoint = record
|
|
x: double;
|
|
y: double;
|
|
z: double;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
TIEPointArray = array[0..Maxint div 16] of <A TIEPoint>;
|
|
!!}
|
|
TIEPointArray = array[0..Maxint div 16] of TIEPoint;
|
|
|
|
|
|
{!!
|
|
<FS>TIEQuadCoords
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEQuadCoords = record
|
|
x0, y0: integer;
|
|
x1, y1: integer;
|
|
x2, y2: integer;
|
|
x3, y3: integer;
|
|
end;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TPointerArray
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TPointerArray = array[0..maxint div 16] of pointer;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TDoubleArray
|
|
|
|
<FM>Declaration<FC>
|
|
TDoubleArray = array[0..maxint div 16] of double;
|
|
!!}
|
|
TDoubleArray = array[0..maxint div 16] of double;
|
|
|
|
|
|
{!!
|
|
<FS>TDWordArray
|
|
|
|
<FM>Declaration<FC>
|
|
TDWordArray = array[0..maxint div 16] of dword;
|
|
!!}
|
|
TDWordArray = array[0..maxint div 16] of dword;
|
|
|
|
|
|
{!!
|
|
<FS>TSingleArray
|
|
|
|
<FM>Declaration<FC>
|
|
TSingleArray = array[0..maxint div 16] of single;
|
|
!!}
|
|
TSingleArray = array[0..maxint div 16] of single;
|
|
|
|
|
|
{!!
|
|
<FS>TIESmallIntArray
|
|
|
|
<FM>Declaration<FC>
|
|
TIESmallIntArray = array[0..maxint div 16] of SmallInt;
|
|
!!}
|
|
TIESmallIntArray = array[0..maxint div 16] of SmallInt;
|
|
|
|
{!!
|
|
<FS>PIESmallIntArray
|
|
|
|
<FM>Declaration<FC>
|
|
PIESmallIntArray = ^TIESmallIntArray;
|
|
!!}
|
|
PIESmallIntArray = ^TIESmallIntArray;
|
|
|
|
|
|
{!!
|
|
<FS>TRGBA
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TRGBA = packed record
|
|
b: byte;
|
|
g: byte;
|
|
r: byte;
|
|
a: byte;
|
|
end;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TRGB48
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TRGB48 = packed record
|
|
r: word;
|
|
g: word;
|
|
b: word;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TRGBA48
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TRGBA48 = packed record
|
|
r: word;
|
|
g: word;
|
|
b: word;
|
|
a: word;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
PRGBA48 = ^TRGBA48;
|
|
|
|
{!!
|
|
<FS>PRGB48
|
|
|
|
<FM>Declaration<FC>
|
|
PRGB48 = ^<A TRGB48>;
|
|
!!}
|
|
PRGB48 = ^TRGB48;
|
|
|
|
TIELine = record
|
|
P, Q: TPoint;
|
|
end;
|
|
TIELineArray = array[0..8192] of TIELine;
|
|
PIELineArray = ^TIELineArray;
|
|
|
|
{!!
|
|
<FS>TIERGBAPalette
|
|
|
|
<FM>Declaration<FC>
|
|
TIERGBAPalette = array[0..maxint div 16] of <A TRGBA>;
|
|
!!}
|
|
TIERGBAPalette = array[0..maxint div 16] of TRGBA;
|
|
|
|
{!!
|
|
<FS>TRGB
|
|
|
|
<FM>Declaration<FC>
|
|
TRGB = packed record
|
|
b: byte;
|
|
g: byte;
|
|
r: byte;
|
|
end;
|
|
|
|
<FM>See Also<FN>
|
|
- <A CreateRGB>
|
|
- <A TRGB2TColor>
|
|
- <A TColor2TRGB>
|
|
!!}
|
|
TRGB = packed record
|
|
b: byte;
|
|
g: byte;
|
|
r: byte;
|
|
end;
|
|
|
|
|
|
{!!
|
|
<FS>TIEArrayOfTRGB
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfTRGB = array of TRGB;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIERGBPalette
|
|
|
|
<FM>Declaration<FC>
|
|
TIERGBPalette = array[0..maxint div 16] of <A TRGB>;
|
|
!!}
|
|
TIERGBPalette = array[0..maxint div 16] of TRGB;
|
|
|
|
|
|
{!!
|
|
<FS>TCMYK
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TCMYK = packed record
|
|
c: byte;
|
|
m: byte;
|
|
y: byte;
|
|
k: byte;
|
|
end;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TCMYK16
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TCMYK16 = packed record
|
|
c: word;
|
|
m: word;
|
|
y: word;
|
|
k: word;
|
|
end;
|
|
{!!}
|
|
|
|
PCMYK16 = ^TCMYK16;
|
|
|
|
|
|
{!!
|
|
<FS>TCIELab
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TCIELab = packed record
|
|
l: byte;
|
|
a: shortint;
|
|
b: shortint;
|
|
end;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TYCbCr
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TYCbCr = packed record
|
|
y: byte;
|
|
Cb: byte;
|
|
Cr: byte;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TCMYKROW
|
|
|
|
<FM>Declaration<FC>
|
|
TCMYKROW = array[0..Maxint div 16] of <A TCMYK>;
|
|
|
|
!!}
|
|
TCMYKROW = array[0..Maxint div 16] of TCMYK;
|
|
|
|
|
|
{!!
|
|
<FS>TRGB48ROW
|
|
|
|
<FM>Declaration<FC>
|
|
TRGB48ROW = array[0..Maxint div 16] of <A TRGB48>;
|
|
!!}
|
|
TRGB48ROW = array[0..Maxint div 16] of TRGB48;
|
|
|
|
|
|
{!!
|
|
<FS>TCIELABROW
|
|
|
|
<FM>Declaration<FC>
|
|
TCIELABROW = array[0..Maxint div 16] of <A TCIELAB>;
|
|
!!}
|
|
TCIELABROW = array[0..Maxint div 16] of TCIELAB;
|
|
|
|
|
|
|
|
{!!
|
|
<FS>RGBROW
|
|
|
|
<FM>Declaration<FC>
|
|
type RGBROW = array[0 . . Maxint div 16] of <A TRGB>;
|
|
!!}
|
|
RGBROW = array[0..Maxint div 16] of TRGB;
|
|
|
|
{!!
|
|
<FS>RGB32ROW
|
|
|
|
<FM>Declaration<FC>
|
|
type RGB32ROW = array[0 . . Maxint div 16] of <A TRGBA>;
|
|
!!}
|
|
RGB32ROW = array[0..Maxint div 16] of TRGBA;
|
|
|
|
|
|
// row of bytes
|
|
{!!
|
|
<FS>TBYTEROW
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TBYTEROW = array[0..Maxint div 16] of byte;
|
|
{!!}
|
|
|
|
|
|
// array of byte rows
|
|
{!!
|
|
<FS>TBYTEROWS
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TBYTEROWS = array[0..Maxint div 16] of PBYTEROW;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>IntegerArray
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
IntegerArray = array[0..MaxInt div 16] of integer;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>int64array
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
int64array = array[0..MaxInt div 16] of int64;
|
|
{!!}
|
|
|
|
|
|
// pointer tp array of pointers to TRGB (scanline rows)
|
|
{!!
|
|
<FS>PRGBArray
|
|
|
|
<FM>Declaration<FC>
|
|
type PRGBArray = array[0 . . Maxint div 16] of pRGB;
|
|
!!}
|
|
PRGBArray = array[0..Maxint div 16] of pRGB;
|
|
|
|
|
|
{!!
|
|
<FS>TIEArrayOfByte
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfByte = array of byte;
|
|
{!!}
|
|
|
|
|
|
TIEArrayOfPointer = array of pointer;
|
|
|
|
{!!
|
|
<FS>TIEArrayOfInteger
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfInteger = array of integer;
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEArrayOfDWord
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEArrayOfDWord = array of dword;
|
|
{!!}
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// TIEVSoftShadow
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow
|
|
|
|
<FM>Description<FN>
|
|
This class specifies how a shadow will be rendered.
|
|
|
|
<FM>Fields<FN>
|
|
<TABLE2>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.Enabled></C> </R>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.Intensity></C> </R>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.OffsetX></C> </R>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.OffsetY></C> </R>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.Radius></C> </R>
|
|
<R> <C_IMG_PROPERTY> <C><A TIEVSoftShadow.ShadowColor></C> </R>
|
|
<R> <C_IMG_METHOD> <C><A TIEVSoftShadow.Assign></C> </R>
|
|
</TABLE>
|
|
!!}
|
|
TIEVSoftShadow = class
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.Enabled
|
|
|
|
<FM>Declaration<FC>
|
|
Enabled: Boolean
|
|
|
|
<FM>Description<FN>
|
|
Enable/disable the shadow.
|
|
|
|
Default: False
|
|
!!}
|
|
Enabled: boolean;
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.Radius
|
|
|
|
<FM>Declaration<FC>
|
|
Radius: Double
|
|
|
|
<FM>Description<FN>
|
|
The radius of the shadow (which controls its blur)
|
|
|
|
Default: 3
|
|
!!}
|
|
Radius: double;
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.OffsetX
|
|
|
|
<FM>Declaration<FC>
|
|
OffsetX: Integer
|
|
|
|
<FM>Description<FN>
|
|
The horizontal relative position of the shadow (negative values position the shadow to the right).
|
|
|
|
Default: 3
|
|
!!}
|
|
OffsetX: integer;
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.OffsetY
|
|
|
|
<FM>Declaration<FC>
|
|
OffsetY: Integer
|
|
|
|
<FM>Description<FN>
|
|
The vertical position of the shadow (negative values position the shadow above).
|
|
|
|
Default: 3
|
|
!!}
|
|
OffsetY: integer;
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.Intensity
|
|
|
|
<FM>Declaration<FC>
|
|
Intensity: Integer
|
|
|
|
<FM>Description<FN>
|
|
This is the shadow intensity, with values in the range 0 and 100 (maximum).
|
|
|
|
Default: 100
|
|
!!}
|
|
Intensity: integer;
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.ShadowColor
|
|
|
|
<FM>Declaration<FC>
|
|
ShadowColor: <A TRGB>;
|
|
|
|
<FM>Description<FN>
|
|
Specifies the shadow color.
|
|
|
|
Default: 0,0,0 (black)
|
|
|
|
<FM>Example<FC>
|
|
ImageEnMView.SoftShadow.ShadowColor := TColor2TRGB( clBlue );
|
|
|
|
<FM>See Also<FN>
|
|
- <A CreateRGB>
|
|
- <A TRGB2TColor>
|
|
- <A TColor2TRGB>
|
|
!!}
|
|
ShadowColor: TRGB;
|
|
|
|
constructor Create;
|
|
procedure Assign(Source: TIEVSoftShadow);
|
|
|
|
end;
|
|
|
|
// TIEVSoftShadow
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
{!!
|
|
<FS>TIEProgressEvent
|
|
|
|
<FM>Declaration<FC>
|
|
type TIEProgressEvent = procedure(Sender: TObject; per: integer) of object;
|
|
|
|
<FM>Description<FN>
|
|
<FC>per<FN> is a value from 0 to 100 that indicates the percentage progress made.
|
|
!!}
|
|
// Notify progress (per=percentage)
|
|
TIEProgressEvent = procedure(Sender: TObject; per: integer) of object;
|
|
|
|
|
|
{!!
|
|
<FS>TIEJob
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEJob = (iejNOTHING, // no job / end of work
|
|
iejGENERALPROCESSING, // generic processing
|
|
iejVIDEOCAP_CONNECTING // Video capture - connecting...
|
|
);
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TIEJobEvent
|
|
|
|
<FM>Declaration<FC>
|
|
type TIEJobEvent = procedure(Sender: TObject; job: <A TIEJob>; per: integer) of object;
|
|
|
|
<FM>Description<FN>
|
|
A TIEJobEvent is called during ImageEn processing.
|
|
|
|
<FC>job<FN> is the job type in progress.
|
|
<FC>per<FN> is percentage of performed work related to job.
|
|
|
|
The <FC>job<FN> parameter can be one of these values:
|
|
|
|
iejNOTHING : No job / end of work
|
|
iejGENERALPROCESSING : generic job
|
|
iejVIDEOCAP_CONNECTING : video capture - connecting to video capture card
|
|
!!}
|
|
TIEJobEvent = procedure(Sender: TObject; job: TIEJob; per: integer) of object;
|
|
|
|
{!!
|
|
<FS>TProgressRec
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
// helper structure for OnProgress
|
|
TProgressRec = record
|
|
fOnProgress: TIEProgressEvent;
|
|
Sender: TObject;
|
|
val: integer; // counter (per=trunc(per1*val))
|
|
tot: integer;
|
|
per1: double; // (100/maxval)
|
|
per2: double;
|
|
Aborting: pboolean;
|
|
end;
|
|
{!!}
|
|
|
|
|
|
{$IfNdef Delphi6orNewer}
|
|
pCardinal = ^Cardinal;
|
|
{$endif}
|
|
|
|
|
|
{!!
|
|
<FS>TResampleFilter
|
|
|
|
<FM>Declaration<FC>
|
|
TResampleFilter = (rfNone, rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfLinear, rfFastLinear, rfBilinear, rfBicubic, rfProjectBW, rfProjectWB, rfWICNearestNeighbor, rfWICLinear, rfWICCubic, rfWICFant);
|
|
|
|
<FM>Description<FN>
|
|
If you need the best quality we suggest: rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfBilinear, rfBicubic
|
|
|
|
If you need speed we suggest: rfTriangle, rfLinear, rfFastLinear, rfWICNearestNeighbor, rfWICLinear, rfWICCubic, rfWICFant
|
|
|
|
For projects (white on black or black on white) we suggest: rfProjectBW and rfProjectWB
|
|
|
|
You can view the effect of the various filters in the demo:
|
|
Demos\Display\ZoomFilter\ZoomFilter.dpr
|
|
!!}
|
|
TResampleFilter = (rfNone, rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3,
|
|
rfMitchell, rfNearest, rfLinear, rfFastLinear, rfBilinear,
|
|
rfBicubic, rfProjectBW, rfProjectWB, rfWICNearestNeighbor,
|
|
rfWICLinear, rfWICCubic, rfWICFant);
|
|
|
|
|
|
{!!
|
|
<FS>THistogramScale
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
THistogramScale = (iehsLinear, iehsLinearClipped, iehsLogarithmic);
|
|
{!!}
|
|
|
|
|
|
THYIEGraphicHeader = record
|
|
Count: Word; { Fixed at 1 }
|
|
HType: Word; { Fixed at $0100 }
|
|
Size: Longint; { Size not including header }
|
|
end;
|
|
|
|
{!!
|
|
<FS>TMsgLanguage
|
|
|
|
<FM>Declaration<FC>
|
|
Type TMsgLanguage = (msSystem, msEnglish, msItalian, msGerman, msSpanish, msFrench, msPortuguese, msGreek, msRussian, msDutch, msSwedish, msPolish, msJapanese, msCzech, msFinnish, msFarsi, msChinese, msChineseTraditional, msDanish, msTurkish, msKorean, msHungarian, msArabic, msSerbian, msChineseTraditionalBig5, msNorwegian, msUser);
|
|
|
|
<FM>See Also<FN>
|
|
- <A LanguageToStr>
|
|
!!}
|
|
TMsgLanguage = (
|
|
msSystem
|
|
{$IFDEF IESUPPORTENGLISH}
|
|
, msEnglish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTITALIAN}
|
|
, msItalian
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGERMAN}
|
|
, msGerman
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSPANISH}
|
|
, msSpanish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFRENCH}
|
|
, msFrench
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPORTUGUESE}
|
|
, msPortuguese
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGREEK}
|
|
, msGreek
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTRUSSIAN}
|
|
, msRussian
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDUTCH}
|
|
, msDutch
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSWEDISH}
|
|
, msSwedish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPOLISH}
|
|
, msPolish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTJAPANESE}
|
|
, msJapanese
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCZECH}
|
|
, msCzech
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFINNISH}
|
|
, msFinnish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFARSI}
|
|
, msFarsi
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCHINESE}
|
|
, msChinese
|
|
, msChineseTraditional
|
|
, msChineseTraditionalBig5
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDANISH}
|
|
, msDanish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTTURKISH}
|
|
, msTurkish
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTKOREAN}
|
|
, msKorean
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTHUNGARIAN}
|
|
, msHungarian
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTARABIC}
|
|
, msArabic
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSERBIAN}
|
|
, msSerbian
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTNORWEGIAN}
|
|
, msNorwegian
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTUSER}
|
|
, msUser
|
|
{$ENDIF}
|
|
);
|
|
|
|
{!!
|
|
<FS>TMsgLanguageWords
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TMsgLanguageWords = (IEMSG_PREVIEW, IEMSG_SOURCE, IEMSG_RESULT, IEMSG_OK, IEMSG_CANCEL,
|
|
IEMSG_LOCKPREVIEW, IEMSG_COPYRESULTTOSOURCE, IEMSG_CONTRAST, IEMSG_BRIGHTNESS,
|
|
IEMSG_HUE, IEMSG_SATURATION, IEMSG_VALUE, IEMSG_BASECOLOR, IEMSG_NEWCOLOR,
|
|
IEMSG_LUMINOSITY, IEMSG_RED, IEMSG_GREEN, IEMSG_BLUE, IEMSG_FILTERVALUES, IEMSG_PRESETS,
|
|
IEMSG_DIVISOR, IEMSG_LOAD, IEMSG_SAVE, IEMSG_EQUALIZATION, IEMSG_THRESHOLD, IEMSG_EQUALIZE,
|
|
IEMSG_HISTOGRAM, IEMSG_GRAY, IEMSG_LIGHT, IEMSG_LEFT, IEMSG_TOP, IEMSG_WIDTH, IEMSG_HEIGHT,
|
|
IEMSG_COLOR, IEMSG_SOURCEIMAGEQUANTITY, IEMSG_LENS, IEMSG_REFRACTION, IEMSG_PARAMETERSPREVIEW,
|
|
IEMSG_QUALITY, IEMSG_DCTMETHOD, IEMSG_SMOOTHINGFACTOR, IEMSG_GRAYSCALE, IEMSG_OPTIMALHUFFMAN,
|
|
IEMSG_ORIGINALSIZE, IEMSG_COMPRESSEDSIZE, IEMSG_ADVANCED, IEMSG_PROGRESSIVE, IEMSG_COMPRESSION,
|
|
IEMSG_IMAGEINDEX, IEMSG_PHOTOMETRIC, IEMSG_SCANNDEDDOCUMENTINFO, IEMSG_NAME, IEMSG_DESCRIPTION,
|
|
IEMSG_PAGENAME, IEMSG_PAGENUMBER, IEMSG_OF, IEMSG_HORIZPOSITIONINCH, IEMSG_VERTPOSITIONINCH,
|
|
IEMSG_COLORS, IEMSG_TRANSPARENT, IEMSG_TRANSPARENTCOLOR, IEMSG_INTERLACED, IEMSG_BACKGROUND,
|
|
IEMSG_HORIZPOSITION, IEMSG_VERTPOSITION, IEMSG_DELAYTIME, IEMSG_FILTER, IEMSG_WAVE,
|
|
IEMSG_AMPLITUDE, IEMSG_WAVELENGTH, IEMSG_PHASE, IEMSG_REFLECTIVE, IEMSG_USERFILTER,
|
|
IEMSG_MORPHFILTER, IEMSG_WINDOWSIZE, IEMSG_MAXIMUM, IEMSG_MINIMUM, IEMSG_OPEN,
|
|
IEMSG_CLOSE, IEMSG_ROTATE, IEMSG_FLIP, IEMSG_FLIPHOR, IEMSG_FLIPVER,
|
|
IEMSG_FREQUENCYDOMAINIMAGE, IEMSG_SELECTTHEREGIONTOCLEAR, IEMSG_CLEAR, IEMSG_RESET,
|
|
IEMSG_ANIMATE, IEMSG_LOADFILTER, IEMSG_SAVEFILTER, IEMSG_BUMPMAP, IEMSG_PRINT, IEMSG_MARGINS, IEMSG_INCHES,
|
|
IEMSG_RIGHT, IEMSG_BOTTOM, IEMSG_POSITION, IEMSG_SIZE, IEMSG_NORMAL, IEMSG_FITTOPAGE, IEMSG_STRETCHTOPAGE,
|
|
IEMSG_SPECIFIEDSIZE, IEMSG_GAMMACORRECTION, IEMSG_VALUE2, IEMSG_PRINTSETUP, IEMSG_LEFTMARGIN, IEMSG_TOPMARGIN,
|
|
IEMSG_RIGHTMARGIN, IEMSG_BOTTOMMARGIN, IEMSG_LOCATIONSIZE, IEMSG_TOPLEFT, IEMSG_TOPCENTER, IEMSG_TOPRIGHT,
|
|
IEMSG_CENTERLEFT, IEMSG_CENTER, IEMSG_CENTERRIGHT, IEMSG_BOTTOMLEFT, IEMSG_BOTTOMCENTER, IEMSG_BOTTOMRIGHT,
|
|
IEMSG_CLOSE2, IEMSG_APPLY, IEMSG_MEASUREUNITS, IEMSG_UNITS, IEMSG_RATE,
|
|
IEMSG_ALLGRAPHICS, IEMSG_VIDEOFORWINDOWS, IEMSG_FILE, IEMSG_MEM, IEMSG_LOCKPREVIEWHINT,
|
|
IEMSG_PRINTALL, IEMSG_PRINTSELECTED, IEMSG_ALLCOMMONGRAPHICFILES, IEMSG_ALLFILES,
|
|
IEMSG_HSV, IEMSG_HSL, IEMSG_RGB, IEMSG_FFT, IEMSG_SHARPEN, IEMSG_CHANNELS,
|
|
IEMSG_PIXELS, IEMSG_FRAMES, IEMSG_BIT, IEMSG_BYTE, IEMSG_DPI, IEMSG_KB, IEMSG_FIT, IEMSG_OTHER,
|
|
IEMSG_COLUMNS, IEMSG_ROWS, IEMSG_STYLE, IEMSG_SPACING, IEMSG_SELECTACQUIREDEVICE, IEMSG_SELECTANACQUISITIONDEVICE,
|
|
IEMSG_Page_X_of_X, IEMSG_X_Pages, IEMSG_Previous, IEMSG_Next, IEMSG_THUMBNAILS,
|
|
IEMsg_Acquire,
|
|
IEMsg_AddFromFile,
|
|
IEMsg_AddLayer,
|
|
IEMsg_AdjustColors,
|
|
IEMsg_AutoEqualizeColors,
|
|
IEMsg_AutoRotateDisplay,
|
|
IEMsg_AutoShrink,
|
|
IEMsg_AutoStretch,
|
|
IEMsg_BringForward,
|
|
IEMsg_BringToFront,
|
|
IEMsg_CircularSelect,
|
|
IEMsg_ConvertToGray,
|
|
IEMsg_CopyImage,
|
|
IEMsg_CopySelection,
|
|
IEMsg_Copy,
|
|
IEMsg_CropImageToObjects,
|
|
IEMsg_CropToSelection,
|
|
IEMsg_CropTransparency,
|
|
IEMsg_CutSelection,
|
|
IEMsg_Cut,
|
|
IEMsg_DeleteAll,
|
|
IEMsg_Delete,
|
|
IEMsg_DeselectAll,
|
|
IEMsg_Deselect,
|
|
IEMsg_EditPolyline,
|
|
IEMsg_FirstFrame,
|
|
IEMsg_FitImageToHeight,
|
|
IEMsg_FitImageToWidth,
|
|
IEMsg_FitImage,
|
|
IEMsg_FlipHorizontal,
|
|
IEMsg_FlipVertical,
|
|
IEMsg_ImageEffects,
|
|
IEMsg_ImageSaveProperties,
|
|
IEMsg_InsertAngle,
|
|
IEMsg_InsertEllipse,
|
|
IEMsg_InsertImage,
|
|
IEMsg_InsertLabelWithLine,
|
|
IEMsg_InsertLine,
|
|
IEMsg_InsertMemo,
|
|
IEMsg_InsertPolyline,
|
|
IEMsg_InsertRectangle,
|
|
IEMsg_InsertRuler,
|
|
IEMsg_InsertText,
|
|
IEMsg_LassoSelect,
|
|
IEMsg_LastFrame,
|
|
IEMsg_LoadFileAsLayer,
|
|
IEMsg_LoopPlayback,
|
|
IEMsg_MeasureArea,
|
|
IEMsg_MeasureDistance,
|
|
IEMsg_MeasureLength,
|
|
IEMsg_MergeAllLayers,
|
|
IEMsg_MergeAllToBackground,
|
|
IEMsg_MergeToBackground,
|
|
IEMsg_MoveLayers,
|
|
IEMsg_Negative,
|
|
IEMsg_NextFrame,
|
|
IEMsg_PasteAsLayer,
|
|
IEMsg_Paste,
|
|
IEMsg_PolygonSelect,
|
|
IEMsg_PreviousFrame,
|
|
IEMsg_PrintAllThumbnails,
|
|
IEMsg_PrintPreview,
|
|
IEMsg_PrintThumbnails,
|
|
IEMsg_PrintToPage,
|
|
IEMsg_RectangularSelect,
|
|
IEMsg_Redo,
|
|
IEMsg_RemoveLayer,
|
|
IEMsg_RemoveRedEyes,
|
|
IEMsg_ResizeLayers,
|
|
IEMsg_Rotate180,
|
|
IEMsg_RotateLayers,
|
|
IEMsg_RotateLeft,
|
|
IEMsg_RotateRight,
|
|
IEMsg_SaveAs,
|
|
IEMsg_SaveProperties,
|
|
IEMsg_ScrollImage,
|
|
IEMsg_ScrollToCursor,
|
|
IEMsg_SelectAcquisitionSource,
|
|
IEMsg_SelectAll,
|
|
IEMsg_SelectByColor,
|
|
IEMsg_Select,
|
|
IEMsg_SendBackward,
|
|
IEMsg_SendToBack,
|
|
IEMsg_SingleFrameOnly,
|
|
IEMsg_Undo,
|
|
IEMsg_Unstamp,
|
|
IEMsg_ZoomIn,
|
|
IEMsg_ZoomOut,
|
|
IEMsg_ZoomToFullSize,
|
|
IEMsg_ZoomToSelection,
|
|
IEMsg_Zoom,
|
|
IEMsg_AddALineObject,
|
|
IEMsg_AddAMultiLineTextObject,
|
|
IEMsg_AddANewLabelObjectWithALine,
|
|
IEMsg_AddANewLayerToThisImage,
|
|
IEMsg_AddARulerObject,
|
|
IEMsg_AddATextObject,
|
|
IEMsg_AddAnAngleMeasurementObject,
|
|
IEMsg_AddAnEllipticalObject,
|
|
IEMsg_AddAnImageObject,
|
|
IEMsg_AddAnImageToTheGridFromFile,
|
|
IEMsg_AddAnRectangularObject,
|
|
IEMsg_ApplyASharpeningFilterToTheImage,
|
|
IEMsg_AutomaticallyDisplayImageWithTheCorrectOrientation,
|
|
IEMsg_AutomaticallyDisplayImagesWithTheCorrectOrientation,
|
|
IEMsg_BringTheSelectedLayerToTheFrontOfAllOthers,
|
|
IEMsg_BringTheSelectedObjectToTheFrontOfAllOtherObjects,
|
|
IEMsg_ClearAllImages,
|
|
IEMsg_ClearAll,
|
|
IEMsg_ClearThisImage,
|
|
IEMsg_ClearYourSelection,
|
|
IEMsg_ClickTheImageAndDragTheMouseToScroll,
|
|
IEMsg_ContinuouslyLoopThePlaybackOfAGIFOrAVIFile,
|
|
IEMsg_CopyImageToTheClipboard,
|
|
IEMsg_CopyTheCurrentImageOrSelectionToTheClipboard,
|
|
IEMsg_CopyTheCurrentImageToTheClipboardAndRemoveIt,
|
|
IEMsg_CopyTheCurrentImageToTheClipboard,
|
|
IEMsg_CutTheSelectionToTheClipboard,
|
|
IEMsg_CopyTheCurrentSelectionToTheClipboard,
|
|
IEMsg_CopyTheSelectedObjectToTheClipboard,
|
|
IEMsg_DeselectAllObjects,
|
|
IEMsg_DisplayAPreviewOfThisImageForPrinting,
|
|
IEMsg_DisplayAPreviewOfYourPrinting,
|
|
IEMsg_DisplayLargeImagesAtTheWindowSize,
|
|
IEMsg_DisplayOnlyTheActiveFrame,
|
|
IEMsg_DisplaySmallImagesAtTheWindowSize,
|
|
IEMsg_DisplayTheAnimationOfAGIFOrAVIFile,
|
|
IEMsg_DisplayTheFirstFrameOfThisImage,
|
|
IEMsg_DisplayTheImageAtFullSize,
|
|
IEMsg_DisplayTheImageAtTheHeightOfTheWindow,
|
|
IEMsg_DisplayTheImageAtTheSizeOfTheWindow,
|
|
IEMsg_DisplayTheImageAtTheWidthOfTheWindow,
|
|
IEMsg_DisplayTheImageLarger,
|
|
IEMsg_DisplayTheImageSmaller,
|
|
IEMsg_DisplayTheLastFrameOfThisImage,
|
|
IEMsg_DisplayTheNextFrameOfThisImage,
|
|
IEMsg_DisplayThePriorFrameOfThisImage,
|
|
IEMsg_DynamicallyMeasureADistance,
|
|
IEMsg_EditPointsOfAPolyline,
|
|
IEMsg_EqualizesTheColorHistogramForTheSelectedRegion,
|
|
IEMsg_FlipTheImageFromLeftToRight,
|
|
IEMsg_FlipTheImageFromTopToBottom,
|
|
IEMsg_FlipTheSelectedImageFromLeftToRight,
|
|
IEMsg_FlipTheSelectedImageFromTopToBottom,
|
|
IEMsg_FreeHandPaintAnOpenPolygon,
|
|
IEMsg_InvertTheColorsOfTheImage,
|
|
IEMsg_LeftClickTheImageToZoomInRightClickToZoomOut,
|
|
IEMsg_LoadAnImageFromFile,
|
|
IEMsg_MatchTheSizeOfTheBackgroundImageToAllOfTheObjectsItContains,
|
|
IEMsg_MeasureARectangularArea,
|
|
IEMsg_MeasureTheDistanceBetweenTwoPoints,
|
|
IEMsg_MergeAllObjectsWithTheBackgroundLayer,
|
|
IEMsg_MergeTheSelectedObjectWithTheBackgroundLayer,
|
|
IEMsg_MergeAllLayersOfTheImageIntoASingleOne,
|
|
IEMsg_MoveTheMouseToScrollTheImage,
|
|
IEMsg_MoveTheSelectedLayerBackward,
|
|
IEMsg_MoveTheSelectedLayerForward,
|
|
IEMsg_MoveTheSelectedObjectBackward,
|
|
IEMsg_MoveTheSelectedObjectForward,
|
|
IEMsg_MoveTheSelectedObjectToTheClipboard,
|
|
IEMsg_PasteFromTheClipboard,
|
|
IEMsg_PasteObjectFromTheClipboard,
|
|
IEMsg_PasteTheContentOfTheClipboardAsANewLayer,
|
|
IEMsg_PerformColorEnhancementFunctionsOnTheImage,
|
|
IEMsg_PerformColorEnhancementFunctionsOnTheSelectedImage,
|
|
IEMsg_PerformAnIrregularSelectionOfYourImageByClickingTheMouse,
|
|
IEMsg_PerformAnIrregularSelectionOfYourImageByDraggingTheMouse,
|
|
IEMsg_PerformEffectsOnTheImage,
|
|
IEMsg_PerformEffectsOnTheSelectedImage,
|
|
IEMsg_PlaybackTheseFramesInSequence,
|
|
IEMsg_PositionTheSelectedLayerBehindAllOthers,
|
|
IEMsg_PositionTheSelectedObjectBehindAllOtherObjects,
|
|
IEMsg_PrintAllImagesOfTheGridAsASheetOfThumbnails,
|
|
IEMsg_PrintTheSelectedImageAtItsOriginalSize,
|
|
IEMsg_PrintTheSelectedImageToFitThePage,
|
|
IEMsg_PrintTheSelectedImagesAsASheetOfThumbnails,
|
|
IEMsg_PrintThisImageAtItsOriginalSize,
|
|
IEMsg_PrintThisImageToFitThePage,
|
|
IEMsg_PromptForAnImageFileToLoadAsANewLayer,
|
|
IEMsg_RedoTheLastActionThatWasUndone,
|
|
IEMsg_ReduceTheColorsOfTheImageToGrayscale,
|
|
IEMsg_RemoveAllObjectsFromTheImage,
|
|
IEMsg_CropTheImageToTheCurrentSelection,
|
|
IEMsg_RemoveTheRedEyeEffectFromTheSelection,
|
|
IEMsg_RemoveTheSelectedImage,
|
|
IEMsg_RemoveTheSelectedLayersFromTheImage,
|
|
IEMsg_RemoveTheSelectedObjectFromTheImage,
|
|
IEMsg_RemoveTheTransparentBordersFromTheSelectedLayers,
|
|
IEMsg_RestartPlaybackAfterItCompletes,
|
|
IEMsg_RetrieveAnImageFromACameraOrScanner,
|
|
IEMsg_RetrieveImagesFromACameraOrScanner,
|
|
IEMsg_RotateTheImage180Clockwise,
|
|
IEMsg_RotateTheImage90Clockwise,
|
|
IEMsg_RotateTheImage90CounterClockwise,
|
|
IEMsg_RotateTheSelectedImage180Clockwise,
|
|
IEMsg_RotateTheSelectedImage90Clockwise,
|
|
IEMsg_RotateTheSelectedImage90CounterClockwise,
|
|
IEMsg_RotateTheSelectedObject180Clockwise,
|
|
IEMsg_RotateTheSelectedObject90Clockwise,
|
|
IEMsg_RotateTheSelectedObject90CounterClockwise,
|
|
IEMsg_SaveChangesToThisImageToFile,
|
|
IEMsg_SaveThisImageToANewFilename,
|
|
IEMsg_SelectACircularAreaOfYourImage,
|
|
IEMsg_SelectAPortionOfYourImageOfASimilarColor,
|
|
IEMsg_SelectARectangularAreaOfYourImage,
|
|
IEMsg_SelectAllImagesInTheGrid,
|
|
IEMsg_SelectAllObjectsOfImage,
|
|
IEMsg_SelectAnAreaOfTheImageToZoomInto,
|
|
IEMsg_SelectOrResizeAnObject,
|
|
IEMsg_SelectTheCameraOrScannerToAcquireImagesFrom,
|
|
IEMsg_SelectTheFirstFrame,
|
|
IEMsg_SelectTheLastFrame,
|
|
IEMsg_SelectTheNextFrame,
|
|
IEMsg_SelectThePreviousFrame,
|
|
IEMsg_SingleClickingWillNotInsertANewObject,
|
|
IEMsg_SpecifyAdvancedPropertiesForAllImages,
|
|
IEMsg_SpecifyAdvancedPropertiesForTheSelectedImage,
|
|
IEMsg_SpecifyAdvancedPropertiesForThisImage,
|
|
IEMsg_UndoTheLastAction,
|
|
IEMsg_UndoTheLastEdit,
|
|
IEMsg_UseTheMouseToMoveImageLayers,
|
|
IEMsg_UseTheMouseToResizeImageLayers,
|
|
IEMsg_UseTheMouseToRotateImageLayers,
|
|
IEMsg_ZoomImage ,
|
|
IEMsg_DisplayImageAtCustomZoom ,
|
|
IEMsg_CustomRotate ,
|
|
IEMsg_RotateImageByACustomAngle ,
|
|
IEMsg_ResizeImage ,
|
|
IEMsg_SpecifyANewSizeForTheImage,
|
|
IEMSG_RESIZE,
|
|
IEMSG_CURRENT,
|
|
IEMSG_NEW,
|
|
IEMSG_SCALE,
|
|
IEMSG_MAINTAINASPECTRATIO,
|
|
IEMSG_Folder,
|
|
IEMSG_Dimensions,
|
|
IEMSG_Type,
|
|
IEMSG_Created,
|
|
IEMSG_Modified ,
|
|
IEMsg_CopyFiles ,
|
|
IEMsg_CopyFilesToClipboard ,
|
|
IEMsg_CopyTheSelectedFilesToANewFolder ,
|
|
IEMsg_CopyTheSelectedFilesToTheClipboard ,
|
|
IEMsg_CutFilesToClipboard ,
|
|
IEMsg_CutTheSelectedFilesToTheClipboard ,
|
|
IEMsg_DeleteFiles ,
|
|
IEMsg_DeleteTheSelectedFilesFromTheFolder ,
|
|
IEMsg_GoUp ,
|
|
IEMsg_MoveFiles ,
|
|
IEMsg_MoveTheSelectedFilesToANewFolder ,
|
|
IEMsg_OpenFile ,
|
|
IEMsg_OpenTheParentOfTheCurrentFolder ,
|
|
IEMsg_OpenTheSelectedFileInTheDefaultViewer ,
|
|
IEMsg_PasteFilesFromClipboard ,
|
|
IEMsg_PasteFilesFromTheClipboardToThisFolder ,
|
|
IEMsg_Refresh ,
|
|
IEMsg_RefreshTheFileListing ,
|
|
IEMsg_WhereDoYouWantToMoveTheseFiles ,
|
|
IEMsg_WhereDoYouWantToCopyTheseFiles ,
|
|
IEMsg_XIsNotAValidFolder ,
|
|
IEMsg_RenameFile ,
|
|
IEMsg_SpecifyANewNameForTheSelectedFile ,
|
|
IEMsg_SpecifyANewNameForX ,
|
|
IEMsg_SelectAFolderToOpen ,
|
|
IEMsg_SelectFolder ,
|
|
IEMsg_CreateFolder ,
|
|
IEMsg_CreateANewFolderAtTheCurrentLocation ,
|
|
IEMsg_SpecifyTheNameOfYourNewFolder ,
|
|
IEMsg_SoftShadow ,
|
|
IEMsg_AddSoftShadow ,
|
|
IEMsg_Radius ,
|
|
IEMsg_Offset ,
|
|
IEMsg_All_Glow ,
|
|
IEMsg_FillPage ,
|
|
IEMsg_AutoEnhance ,
|
|
IEMsg_AutoEnhanceMethod ,
|
|
IEMsg_General ,
|
|
IEMsg_ToneMapping ,
|
|
IEMsg_Slope ,
|
|
IEMsg_Range ,
|
|
IEMsg_Gamma ,
|
|
IEMSG_Crop ,
|
|
IEMSG_CropImage ,
|
|
IEMsg_EditImage ,
|
|
IEMsg_PerformEditingFunctionsOnTheImage ,
|
|
IEMsg_PreviewEffects ,
|
|
IEMsg_PreviewEffectsToEditAndEnhanceTheImage ,
|
|
IEMsg_ThumbnailView ,
|
|
IEMsg_DisplayLargeThumbnails ,
|
|
IEMsg_DetailView ,
|
|
IEMsg_DisplayFileDetails ,
|
|
IEMsg_Filename ,
|
|
IEMsg_FileType ,
|
|
IEMsg_FileSize ,
|
|
IEMsg_CreateDate ,
|
|
IEMsg_EditDate ,
|
|
IEMsg_ImageSize ,
|
|
IEMsg_SortByX ,
|
|
IEMsg_Ascending ,
|
|
IEMsg_Descending ,
|
|
IEMsg_SortX ,
|
|
IEMsg_MultiplePages ,
|
|
IEMsg_PagesAcross ,
|
|
IEMsg_PagesDown ,
|
|
IEMsg_SelectAllLayers ,
|
|
IEMsg_SelectAllLayersOfTheImage ,
|
|
IEMsg_DeselectAllLayers ,
|
|
IEMsg_DeselectAllLayersOfTheImage ,
|
|
IEMsg_GroupLayers ,
|
|
IEMsg_AddSelectedLayersToASelectionGroup ,
|
|
IEMsg_UngroupLayers ,
|
|
IEMsg_RemoveSelectedLayersFromSelectionGroup ,
|
|
IEMsg_MergeLayers ,
|
|
IEMsg_MergeSelectedLayersIntoASingleLayer ,
|
|
IEMsg_ColumnView ,
|
|
IEMsg_DisplayFileColumns ,
|
|
IEMsg_LargeThumbnailView ,
|
|
IEMsg_DisplayThumbnails ,
|
|
IEMsg_FileListView ,
|
|
IEMsg_DisplayFileList ,
|
|
IEMsg_ShowColumnX ,
|
|
IEMsg_Path ,
|
|
IEMsg_ImageProperties ,
|
|
IEMsg_Caption ,
|
|
IEMsg_ADDINNERSHADOW ,
|
|
IEMsg_ADJUSTBRIGHTNESSCONTRASTSATURATION ,
|
|
IEMsg_ADJUSTGAINOFFSET ,
|
|
IEMsg_AdjustLuminanceSaturation ,
|
|
IEMsg_ADJUSTTEMPERATURE ,
|
|
IEMsg_ADJUSTTINT ,
|
|
IEMsg_Automatic ,
|
|
IEMsg_AUTOSHARPEN ,
|
|
IEMsg_BLUR ,
|
|
IEMsg_CASTALPHA ,
|
|
IEMsg_CASTCOLOR ,
|
|
IEMsg_CASTCOLORRANGE ,
|
|
IEMsg_CLEARSEL ,
|
|
IEMsg_COLORIZE ,
|
|
IEMsg_CONVERTTO ,
|
|
IEMsg_CONVERTTO24BIT ,
|
|
IEMsg_CONVERTTOPALETTE ,
|
|
IEMsg_CONVERTTOSEPIA ,
|
|
IEMsg_CONVOLVE ,
|
|
IEMsg_DECRYPT ,
|
|
IEMsg_DEINTERLACE ,
|
|
IEMsg_ReorderColorChannels ,
|
|
IEMsg_EDGEDETECT ,
|
|
IEMsg_ENCRYPT ,
|
|
IEMsg_FEATHEREDGES ,
|
|
IEMsg_FILL ,
|
|
IEMsg_FTCLEARZONE ,
|
|
IEMsg_HISTAUTOEQUALIZE ,
|
|
IEMsg_INTENSITY ,
|
|
IEMsg_AdjustHistogram ,
|
|
IEMsg_MAPGRAYTOCOLOR ,
|
|
IEMsg_MATCHHSVRANGE ,
|
|
IEMsg_MEDIANFILTER ,
|
|
IEMsg_MERGEWITHMASK ,
|
|
IEMsg_MERGE ,
|
|
IEMsg_Monochrome ,
|
|
IEMsg_MOTIONBLUR ,
|
|
IEMsg_PAINTMARK ,
|
|
IEMsg_PERSPECTIVEDRAW ,
|
|
IEMsg_ConvolutionFilter ,
|
|
IEMsg_PROJECTDRAW ,
|
|
IEMsg_RADIALSTRETCH ,
|
|
IEMsg_RANDOMIZE ,
|
|
IEMsg_REFLECTION ,
|
|
IEMsg_REMOVECHROMAKEY ,
|
|
IEMsg_REMOVEISOLATEDPIXELS ,
|
|
IEMsg_REMOVENOISE ,
|
|
IEMsg_RESIZECANVASXX ,
|
|
IEMsg_ROTATEANDCROP ,
|
|
IEMsg_ROUNDIMAGE ,
|
|
IEMSG_ConvertToXColors ,
|
|
IEMsg_SHIFTCHANNEL ,
|
|
IEMSG_TileImage ,
|
|
IEMsg_UNSHARPEN ,
|
|
IEMsg_WALLISFILTER ,
|
|
IEMsg_WHITEBALANCE ,
|
|
IEMsg_WRITEHIDDENDATA ,
|
|
IEMSG_AdjustHSV ,
|
|
IEMSG_AdjustHSL ,
|
|
IEMSG_AdjustRGB ,
|
|
IEMsg_ShowRulers ,
|
|
IEMsg_ShowMeasurementRulersBesideImage ,
|
|
IEMsg_CapPixels ,
|
|
IEMsg_ShowRulerInPixels ,
|
|
IEMsg_CapInches ,
|
|
IEMsg_ShowRulerInInches ,
|
|
IEMsg_Millimeters ,
|
|
IEMsg_ShowRulerInMillimeters ,
|
|
IEMsg_Centimeters ,
|
|
IEMsg_ShowRulerInCentimeters ,
|
|
IEMsg_SymmetricNearestNeighbour ,
|
|
IEMsg_Pixelize ,
|
|
IEMsg_PencilSketch ,
|
|
IEMsg_PasteAnImageFromTheClipboard ,
|
|
IEMsg_Linear ,
|
|
IEMsg_LinearClipped ,
|
|
IEMsg_Logarithmic ,
|
|
|
|
IEMsg_IncludeSubFolders ,
|
|
IEMsg_AlsoDisplayFilesFoundInSubfoldersOfThisFolder,
|
|
IEMsg_EnableCropping,
|
|
IEMsg_EnableCroppingModeToSelectAnAreaOfTheImageToMaintain,
|
|
IEMsg_CancelCropping,
|
|
IEMsg_ClearTheCurrentCropSelection,
|
|
IEMsg_AddImageLayers ,
|
|
IEMsg_ClickAndDragToCreateAnImageLayer ,
|
|
IEMsg_AddShapeLayers ,
|
|
IEMsg_ClickAndDragToCreateAShapeLayer ,
|
|
IEMsg_AddLineLayers ,
|
|
IEMsg_ClickAndDragToCreateALineLayer ,
|
|
IEMsg_AddPolylineLayers ,
|
|
IEMsg_ClickAndDragToCreateAPolylineLayer ,
|
|
IEMsg_AddTextLayers ,
|
|
IEMsg_ClickAndDragToCreateATextLayer ,
|
|
IEMsg_AlignLeftEdges ,
|
|
IEMsg_AlignRightEdges ,
|
|
IEMsg_AlignTopEdges ,
|
|
IEMsg_AlignBottomEdges ,
|
|
IEMsg_AlignHorizontalCenters ,
|
|
IEMsg_AlignVerticalCenters ,
|
|
IEMsg_MatchWidth ,
|
|
IEMsg_MatchHeight ,
|
|
|
|
IEMsg_AlignSelectedLayersToTheEdgeOfTheLeftmostLayer ,
|
|
IEMsg_AlignSelectedLayersToTheEdgeOfTheRightmostLayer ,
|
|
IEMsg_AlignSelectedLayersToTheEdgeOfTheTopmostLayer ,
|
|
IEMsg_AlignSelectedLayersToTheEdgeOfTheBottommostLayer ,
|
|
IEMsg_AlignSelectedLayersToHaveTheSameHorizontalCenter ,
|
|
IEMsg_AlignSelectedLayersToHaveTheSameVerticalCenter ,
|
|
IEMsg_ResizeAllSelectedLayersToTheWidthOfTheWidestLayer ,
|
|
IEMsg_ResizeAllSelectedLayersToTheHeightOfTheTallestLayer ,
|
|
|
|
IEMsg_CropBackgroundToSelection ,
|
|
IEMsg_CropTheBackgroundImageToMatchSelectedLayers ,
|
|
IEMsg_FastPreview ,
|
|
IEMsg_ReducePreviewQualityToImprovePerformance ,
|
|
IEMsg_LockAspectRatio ,
|
|
IEMsg_LockPosition ,
|
|
IEMsg_RestoreAspectRatio ,
|
|
IEMsg_SizeToFit ,
|
|
IEMsg_Visible ,
|
|
IEMsg_ResetSize ,
|
|
IEMsg_SelectImage ,
|
|
IEMsg_ClosePolyline ,
|
|
IEMsg_PreventResizingFromAffectingTheAspectRatioOfTheSelectedLayer ,
|
|
IEMsg_PreventMovementOfTheSelectedLayer ,
|
|
IEMsg_RestoreTheOriginalAspectRatioOfTheSelectedLayer ,
|
|
IEMsg_ResizeTheLayerToMatchItsContent ,
|
|
IEMsg_AddASoftShadowToTheSelectedLayer ,
|
|
IEMsg_DisplayTheCurrentLayer ,
|
|
IEMsg_RestoreTheOriginalSizeOfTheSelectedLayer ,
|
|
IEMsg_BrowseForAnImageToLoadIntoTheLayer ,
|
|
IEMsg_JoinTheFirstAndLastPointsOfThePolylineToCreateAPolygon ,
|
|
IEMsg_AddImageLayer ,
|
|
IEMsg_AddShapeLayer ,
|
|
IEMsg_AddLineLayer ,
|
|
IEMsg_AddPolylineLayer ,
|
|
IEMsg_AddTextLayer ,
|
|
IEMsg_RotateTheLayerCounterClockwise ,
|
|
IEMsg_RotateTheLayerClockwise ,
|
|
IEMsg_ConvertToImageLayer ,
|
|
IEMsg_ConvertTheLayerToAnImage ,
|
|
IEMsg_ArrangeLayers ,
|
|
IEMsg_SetLayerProperties ,
|
|
IEMsg_CropLayerToBackground ,
|
|
IEMsg_HideAnyPartOfTheSelectedLayerLyingOutsideTheBackground ,
|
|
IEMsg_ShowLabel ,
|
|
IEMsg_AttachATextLabelToThisLine ,
|
|
IEMsg_EditLayerText ,
|
|
IEMsg_EditTheTextOfTheSelectedLayer ,
|
|
IEMsg_ResetRotation ,
|
|
IEMsg_ResetTheRotationOfTheSelectedLayer
|
|
);
|
|
|
|
{!!}
|
|
|
|
type
|
|
TIELANGUAGECHARINFO = record
|
|
CharSet: TFontCharset;
|
|
FontName: string; // empty string means predefined
|
|
CodePage: word;
|
|
end;
|
|
|
|
const
|
|
|
|
IELANGUAGECHARINFO: array [TMsgLanguage] of TIELANGUAGECHARINFO = (
|
|
(CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 0)
|
|
{$IFDEF IESUPPORTENGLISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTITALIAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGERMAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSPANISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFRENCH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPORTUGUESE}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGREEK}
|
|
, (CharSet: GREEK_CHARSET; FontName: ''; CodePage: 1253)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTRUSSIAN}
|
|
, (CharSet: RUSSIAN_CHARSET; FontName: ''; CodePage: 1251)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDUTCH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSWEDISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPOLISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1250)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTJAPANESE}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 932)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCZECH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1250)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFINNISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFARSI}
|
|
, (CharSet: ARABIC_CHARSET; FontName: 'Tahoma'; CodePage: 1256)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCHINESE}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 936) // Vhinese
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 950) // Chinese Trad.
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 950) // Chinese Trad. Big5
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDANISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTTURKISH}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1254)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTKOREAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 949)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTHUNGARIAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1250)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTARABIC}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: 'Tahoma'; CodePage: 1256)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSERBIAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1250)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTNORWEGIAN}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTUSER}
|
|
, (CharSet: DEFAULT_CHARSET; FontName: ''; CodePage: 1252)
|
|
{$ENDIF}
|
|
);
|
|
|
|
|
|
IESELBREAK = $FFFFF; // selection break code
|
|
|
|
// TIFF tags
|
|
IETIFFTAG_TRANSFERFUNC = 301;
|
|
IETIFFTAG_COLORMAP = 320;
|
|
IETIFFTAG_SUBIFD = 330;
|
|
IETIFFTAG_XMP = 700;
|
|
IETIFFTAG_WANGIMAGING = 32932;
|
|
IETIFFTAG_COPYRIGHT = 33432;
|
|
IETIFFTAG_IPTC = 33723;
|
|
IETIFFTAG_PHOTOSHOP = 34377;
|
|
IETIFFTAG_EXIFIFD = 34665;
|
|
IETIFFTAG_ICC = 34675;
|
|
IETIFFTAG_EXIFGPSIFD = 34853;
|
|
IETIFFTAG_EPSTANDARD = 37398;
|
|
IETIFFTAG_INTEROPIFD = 40965;
|
|
IETIFFTAG_DNGVERSION = 50706;
|
|
|
|
// EXIF tags
|
|
IETIFFTAG_EXIFMAKERNOTE = $927C;
|
|
|
|
// TIFF types
|
|
IETIFFTYPE_BYTE = 1;
|
|
IETIFFTYPE_ASCII = 2;
|
|
IETIFFTYPE_SHORT = 3;
|
|
IETIFFTYPE_LONG = 4;
|
|
IETIFFTYPE_RATIONAL = 5;
|
|
IETIFFTYPE_SBYTE = 6;
|
|
IETIFFTYPE_UNDEFINED = 7;
|
|
IETIFFTYPE_SSHORT = 8;
|
|
IETIFFTYPE_SLONG = 9;
|
|
IETIFFTYPE_SRATIONAL = 10;
|
|
IETIFFTYPE_FLOAT = 11;
|
|
IETIFFTYPE_DOUBLE = 12;
|
|
IETIFFTYPE_IFDPOINTER = 13; // 4 bytes pointer to IFD (Same as LONG)
|
|
IETIFFTYPE_UNICODE = 14;
|
|
IETIFFTYPE_COMPLEX = 15;
|
|
IETIFFTYPE_LONG8 = 16; // BIGTIFF uint64
|
|
IETIFFTYPE_SLONG8 = 17; // BIGTIFF int64
|
|
IETIFFTYPE_IFD8 = 18; // BIGTIFF 8 bytes pointer to IFD
|
|
|
|
// YUV formats
|
|
IEBI_IYU1 = $31555949;
|
|
IEBI_IYU2 = $32555949;
|
|
IEBI_UYVY = $59565955;
|
|
IEBI_UYNV = $564E5955;
|
|
IEBI_cyuv = $76757963;
|
|
IEBI_YUY2 = $32595559;
|
|
IEBI_YUNV = $564E5559;
|
|
IEBI_YVYU = $55595659;
|
|
IEBI_Y41P = $50313459;
|
|
IEBI_Y211 = $31313259;
|
|
IEBI_Y41T = $54313459;
|
|
IEBI_Y42T = $54323459;
|
|
IEBI_CLJR = $524A4C43;
|
|
IEBI_YVU9 = $39555659;
|
|
IEBI_IF09 = $39304649;
|
|
IEBI_YV12 = $32315659;
|
|
IEBI_I420 = $30323449;
|
|
IEBI_IYUV = $56555949;
|
|
IEBI_CLPL = $4C504C43;
|
|
|
|
function LanguageToStr(ALanguage : TMsgLanguage) : string;
|
|
|
|
var
|
|
|
|
ieMessages: array[TMsgLanguage] of array[TMsgLanguageWords] of string;
|
|
|
|
gAVIFILEinit: boolean; // true if AVIFILE library has been initialized
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
IIESequentialStream = interface(IUnknown)
|
|
['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
|
|
function Read(pv: pointer; cb: dword; pcbRead: PDWORD): HResult; stdcall;
|
|
function Write(pv: pointer; cb: dword; pcbWritten: PDWORD): HResult; stdcall;
|
|
end;
|
|
|
|
IE_STATSTG = record
|
|
end;
|
|
|
|
IIEStream = interface(IIESequentialStream)
|
|
['{0000000C-0000-0000-C000-000000000046}']
|
|
function Seek(dlibMove: int64; dwOrigin: dword; var plibNewPosition: int64): HResult; stdcall;
|
|
function SetSize(libNewSize: int64): HResult; stdcall;
|
|
function CopyTo(pstm: IIEStream; cb: int64; var pcbRead: int64; var pcbWritten: int64): HResult; stdcall;
|
|
function Commit(grfCommitFlags: dword): HResult; stdcall;
|
|
function Revert(): HResult; stdcall;
|
|
function LockRegion(libOffset: int64; cb: int64; dwLockType: dword): HResult; stdcall;
|
|
function UnlockRegion(libOffset: int64; cb: int64; dwLockType: dword): HResult; stdcall;
|
|
function Stat(var pstatstg: IE_STATSTG; grfStatFlag: dword): HResult; stdcall;
|
|
function Clone(var ppstm: IIEStream): HResult; stdcall;
|
|
end;
|
|
|
|
|
|
{!!
|
|
<FS>TIERectangle
|
|
|
|
<FM>Declaration<FC>
|
|
TIERectangle = packed record
|
|
x, y: integer;
|
|
width, height: integer;
|
|
end;
|
|
|
|
<FM>Description<FN>
|
|
Describes a rectangle in terms of top-left, top-right coordinates and sizes.
|
|
|
|
<FM>See Also<FN>
|
|
- <A IERectangle>
|
|
!!}
|
|
TIERectangle = packed record
|
|
x, y: integer;
|
|
width, height: integer;
|
|
end;
|
|
|
|
|
|
{!!
|
|
<FS>TIEBackgroundStyle
|
|
|
|
<FM>Declaration<FC>
|
|
TIEBackgroundStyle = (iebsSolid, iebsHorizontal, iebsVertical, iebsFDiagonal, iebsBDiagonal, iebsCross, iebsDiagCross, iebsChessboard, iebsDiagonals, iebsCropped, iebsCropShadow, iebsGradient, iebsSoftShadow, iebsPhotoLike, iebsBlurredImage);
|
|
|
|
<FM>Description<FN>
|
|
<TABLE>
|
|
<R> <H>Value</H> <H>Description</H> </R>
|
|
<R> <C>iebsCropped *</C> <C>A border is shown around the image (instead of around the edge of the ImageEnView). Best used with ImageEnView.BorderStyle=bsNone and <A TImageEnView.Center>=True</C> </R>
|
|
<R> <C>iebsCropShadow *</C> <C>A solid shadow is drawn around the image (See also: iebsSoftShadow)</C> </R>
|
|
<R> <C>iebsChessboard</C> <C>Background has chessboard pattern</C> </R>
|
|
<R> <C>iebsDiagonals</C> <C>Background has diagonal pattern</C> </R>
|
|
<R> <C>iebsSolid</C> <C>Background is a solid color (see <A TImageEnView.Background>)</C> </R>
|
|
<R> <C>iebsHorizontal</C> <C>Same as bsHorizontal of TBrushStyle</C> </R>
|
|
<R> <C>iebsVertical</C> <C>Same as bsVertical of TBrushStyle</C> </R>
|
|
<R> <C>iebsFDiagonal</C> <C>Same as bsFDiagonal of TBrushStyle</C> </R>
|
|
<R> <C>iebsBDiagonal</C> <C>Same as bsBDiagonal of TBrushStyle</C> </R>
|
|
<R> <C>iebsCross</C> <C>Same as bsCross of TBrushStyle</C> </R>
|
|
<R> <C>iebsDiagCross</C> <C>Same as bsDiagCross of TBrushStyle</C> </R>
|
|
<R> <C>iebsGradient</C> <C>Background is a gradient of two colors (specified with <A TImageEnView.Background> and <A TImageEnView.GradientEndColor>)</C> </R>
|
|
<R> <C>iebsSoftShadow *</C> <C>A soft (gaussian) shadow is drawn around the image</C> </R>
|
|
<R> <C>iebsPhotoLike *</C> <C>A dark gray backround is drawn around the image with a black border around</C> </R>
|
|
<R> <C>iebsBlurredImage *</C> <C>The current image is shown blurred and zoomed to fill the window (can be slow)</C> </R>
|
|
</TABLE>
|
|
|
|
* These styles are not supported by <A TImageEnMView>
|
|
!!}
|
|
TIEBackgroundStyle = (iebsSolid, iebsHorizontal, iebsVertical, iebsFDiagonal, iebsBDiagonal, iebsCross, iebsDiagCross, iebsChessboard, iebsDiagonals, iebsCropped, iebsCropShadow, iebsGradient, iebsSoftShadow, iebsPhotoLike, iebsBlurredImage);
|
|
|
|
{!!
|
|
<FS>TIEMemoShortCut
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEMemoShortCut = (iesLEFTALIGN, iesCENTERALIGN, iesRIGHTALIGN, iesJUSTIFIED, iesCOPY, iesCUT, iesPASTE, iesFONTSELECT, iesBOLD, iesITALIC, iesUNDERLINE, iesBACKCOLORSELECT);
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TIEMemoShortCuts
|
|
|
|
<FM>Declaration<FC>
|
|
TIEMemoShortCuts = array [<A TIEMemoShortCut>] of TShortCut;
|
|
!!}
|
|
TIEMemoShortCuts = array [TIEMemoShortCut] of TShortCut;
|
|
|
|
|
|
{!!
|
|
<FS>TIEGradientDir
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEGradientDir = (gdHorizontal, gdVertical);
|
|
{!!}
|
|
|
|
|
|
{!!
|
|
<FS>TIEUnits
|
|
|
|
<FM>Declaration<FC>
|
|
type TIEUnits = (ieuPIXELS, ieuINCHES, ieuKM, ieuMETERS, ieuCENTIMETERS, ieuMILLIMETERS, ieuMICRONS, ieuNANOMETERS, ieuFEET, ieuYARDS, ieuMILES);
|
|
|
|
<FM>Description<FN>
|
|
<TABLE>
|
|
<R> <H>Value</H> <H>Description</H> </R>
|
|
<R> <C>ieuPIXELS</C> <C>Pixels</C> </R>
|
|
<R> <C>ieuINCHES</C> <C>Inches</C> </R>
|
|
<R> <C>ieuKM</C> <C>Kilometers</C> </R>
|
|
<R> <C>ieuMETERS</C> <C>Meters</C> </R>
|
|
<R> <C>ieuCENTIMETERS</C> <C>Centimeters</C> </R>
|
|
<R> <C>ieuMILLIMETERS</C> <C>Millimeters</C> </R>
|
|
<R> <C>ieuMICRONS</C> <C>Microns</C> </R>
|
|
<R> <C>ieuNANOMETERS</C> <C>Nanometers</C> </R>
|
|
<R> <C>ieuFEET</C> <C>Feet</C> </R>
|
|
<R> <C>ieuYARDS</C> <C>Yards</C> </R>
|
|
<R> <C>ieuMILES</C> <C>Miles</C> </R>
|
|
</TABLE>
|
|
!!}
|
|
TIEUnits = (ieuPIXELS, ieuINCHES, ieuKM, ieuMETERS, ieuCENTIMETERS, ieuMILLIMETERS, ieuMICRONS, ieuNANOMETERS, ieuFEET, ieuYARDS, ieuMILES);
|
|
|
|
{!!
|
|
<FS>TIEMeasureUnits
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEMeasureUnits = array [TIEUnits] of string;
|
|
{!!}
|
|
|
|
|
|
TGIFLZWCompFunc = procedure(Stream: TStream; Height, Width: integer; Interlaced: boolean; FData: PAnsiChar; BitsPerPixel: integer);
|
|
TGIFLZWDecompFunc = procedure(Stream: TStream; Height, Width: integer; Interlaced: boolean; FData: PAnsiChar);
|
|
TTIFFLZWDecompFunc = function(CompBuf: pbyte; LineSize: integer; var Id: pointer; FillOrder: integer): pbyte;
|
|
TTIFFLZWCompFunc = procedure(indata: pbyte; inputlen: integer; outstream: TStream; var id: pointer);
|
|
|
|
|
|
{!!
|
|
<FS>TIEFontQuality
|
|
|
|
<FM>Declaration<FC>
|
|
TIEFontQuality = (iefqAntialiased, iefqClearType, iefqClearTypeNatural, iefqDefault, iefqDraft, iefqNonAntialiased, iefqProof);
|
|
|
|
<FM>Description<FN>
|
|
<TABLE>
|
|
<R> <H>Value</H> <H>Description</H> </R>
|
|
<R> <C>iefqAntialiased</C> <C>Font is always antialiased if the font supports it and the size of the font is not too small or too large.</C> </R>
|
|
<R> <C>iefqClearType</C> <C>If set, text is rendered (when possible) using ClearType antialiasing method (XP/Vista Only)</C> </R>
|
|
<R> <C>iefqClearNatural</C> <C>Undocumented.</C> </R>
|
|
<R> <C>iefqDefault</C> <C>Appearance of the font does not matter.</C> </R>
|
|
<R> <C>iefqDraft</C> <C>Appearance of the font is less important than when iefqProof is used. </C> </R>
|
|
<R> <C>iefqNonAntialiased</C> <C>Font is never antialiased.</C> </R>
|
|
<R> <C>iefqProof</C> <C>Character quality of the font is more important than exact matching of the logical-font attributes.</C> </R>
|
|
</TABLE>
|
|
!!}
|
|
TIEFontQuality = (iefqAntialiased, iefqClearType, iefqClearTypeNatural, iefqDefault, iefqDraft, iefqNonAntialiased, iefqProof);
|
|
|
|
|
|
{!!
|
|
<FS>TIEAlignment
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEAlignment = (iejLeft, iejRight, iejCenter, iejJustify);
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TIELayout
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIELayout = (ielTop, ielBottom, ielCenter);
|
|
{!!}
|
|
|
|
|
|
|
|
{!!
|
|
<FS>TIECurve
|
|
|
|
<FM>Declaration<FC>
|
|
TIECurve = (iecNone, iecEllipse, iecCosine, iecVertical, iecHorizontal, iecArc);
|
|
|
|
<FM>Description<FN>
|
|
<TABLE>
|
|
<R> <H>Value</H> <H>Description</H> </R>
|
|
<R> <C>iecNone</C> <C>No curve (useful to remove a curve also created with <A TImageEnVect.SetObjTextCurve>)</C> </R>
|
|
<R> <C>iecEllipse</C> <C>Creates an ellipting curve</C> </R>
|
|
<R> <C>iecCosine</C> <C>Creates a cosine curve</C> </R>
|
|
<R> <C>iecVertical</C> <C>Creates a vertical text</C> </R>
|
|
<R> <C>iecHorizontal</C> <C>Creates an horizontal text</C> </R>
|
|
<R> <C>iecArc</C> <C>Creates an arc</C> </R>
|
|
</TABLE>
|
|
!!}
|
|
TIECurve = (iecNone, iecEllipse, iecCosine, iecVertical, iecHorizontal, iecArc);
|
|
|
|
{!!
|
|
<FS>TDPoint
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TDPoint = record
|
|
X, Y: double;
|
|
end;
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>TDPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
type TDPointArray = array[0 . . Maxint div 32] of <A TDPoint>;
|
|
!!}
|
|
TDPointArray = array[0..Maxint div 32] of TDPoint;
|
|
|
|
{!!
|
|
<FS>PDPointArray
|
|
|
|
<FM>Declaration<FC>
|
|
type PDPointArray = ^<A TDPointArray>;
|
|
!!}
|
|
PDPointArray = ^TDPointArray;
|
|
|
|
{!!
|
|
<FS>TIEShape
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEShape = ( iesEllipse,
|
|
iesHalfEllipse,
|
|
iesQuarterEllipse,
|
|
iesEllipseSegment,
|
|
iesRectangle,
|
|
iesRoundRect,
|
|
iesTriangle,
|
|
iesCorner,
|
|
iesDiamond,
|
|
iesPentagon,
|
|
iesHexagon,
|
|
iesHeptagon,
|
|
iesOctagon,
|
|
iesCustomShape,
|
|
iesStar5,
|
|
iesStar6,
|
|
iesCustomStar,
|
|
iesArrowLeft,
|
|
iesArrowRight,
|
|
iesArrowUp,
|
|
iesArrowDown,
|
|
iesArrowLeftRight,
|
|
iesArrowUpDown,
|
|
iesArrowNW,
|
|
iesArrowNE,
|
|
iesArrowSW,
|
|
iesArrowSE,
|
|
iesFatArrowLeft,
|
|
iesFatArrowRight,
|
|
iesFatArrowUp,
|
|
iesFatArrowDown,
|
|
iesShootingArrowNW,
|
|
iesShootingArrowNE,
|
|
iesShootingArrowSW,
|
|
iesShootingArrowSE,
|
|
iesLightningLeft,
|
|
iesLightningRight,
|
|
iesExplosion,
|
|
iesCustomExplosion,
|
|
iesCross,
|
|
iesHeart,
|
|
iesDoubleHeart,
|
|
iesCloud,
|
|
iesMoon,
|
|
iesSpeechBubbleLeftInShort,
|
|
iesSpeechBubbleLeftOutShort,
|
|
iesSpeechBubbleRightInShort,
|
|
iesSpeechBubbleRightOutShort,
|
|
iesSpeechBubbleLeftInLong,
|
|
iesSpeechBubbleLeftOutLong,
|
|
iesSpeechBubbleRightInLong,
|
|
iesSpeechBubbleRightOutLong,
|
|
iesThoughtBubbleLeft,
|
|
iesThoughtBubbleRight,
|
|
iesShield,
|
|
iesBadge,
|
|
iesNamePlate,
|
|
iesFrame,
|
|
iesNarrowFrame,
|
|
iesFatFrame,
|
|
iesCircularFrame );
|
|
{!!}
|
|
|
|
{!!
|
|
<FS>IIELanguageUpdatable
|
|
|
|
<FM>Declaration<FC>
|
|
IIELanguageUpdatable = interface
|
|
procedure UpdateLanguage();
|
|
end;
|
|
|
|
<FM>Description<FN>
|
|
Each component (TComponent descendant) that implements UpdateLanguage method of this interface will be called whenever <A TIEImageEnGlobalSettings.MsgLanguage> changes.
|
|
!!}
|
|
IIELanguageUpdatable = interface
|
|
['{6274D2D8-3E4C-43F2-8157-229558BFB2F0}']
|
|
procedure UpdateLanguage();
|
|
end;
|
|
|
|
|
|
{!!
|
|
<FS>TIEMediaFountationNotifyType
|
|
|
|
<FM>Declaration<FC>
|
|
}
|
|
TIEMediaFountationNotifyType = (iemfnFRAME, iemfnSTARTINGCAPTURE, iemfnENDOFSTREAM);
|
|
{!!}
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Windows CMS
|
|
|
|
type TIECMSGRAY = word;
|
|
|
|
type TIECMSRGBCOLOR = record
|
|
red: WORD;
|
|
green: WORD;
|
|
blue: WORD;
|
|
end;
|
|
|
|
type TIECMSCMYKCOLOR = record
|
|
cyan: WORD;
|
|
magenta: WORD;
|
|
yellow: WORD;
|
|
black: WORD;
|
|
end;
|
|
|
|
type TIECMSXYZCOLOR = record
|
|
X: WORD;
|
|
Y: WORD;
|
|
Z: WORD;
|
|
end;
|
|
|
|
type TIECMSYxyCOLOR = record
|
|
Y: WORD;
|
|
x: WORD;
|
|
y_: WORD;
|
|
end;
|
|
|
|
type TIECMSLabCOLOR = record
|
|
L: WORD;
|
|
a: WORD;
|
|
b: WORD;
|
|
end;
|
|
|
|
type TIECMSGENERIC3CHANNEL = record
|
|
ch1: WORD;
|
|
ch2: WORD;
|
|
ch3: WORD;
|
|
end;
|
|
|
|
type TIECMSNAMEDCOLOR = record
|
|
dwIndex: DWORD;
|
|
end;
|
|
|
|
const IECMSMAX_COLOR_CHANNELS = 8; // maximum number of HiFi color channels
|
|
|
|
type TIECMSHiFiCOLOR = record
|
|
channel: array [0..IECMSMAX_COLOR_CHANNELS - 1] of byte;
|
|
end;
|
|
|
|
type TIECMSAlignment = record
|
|
reserved1: DWORD;
|
|
reserved2: pointer;
|
|
end;
|
|
|
|
TIECMSCOLOR = record
|
|
case Integer of
|
|
0: (gray: TIECMSGRAY);
|
|
1: (rgb: TIECMSRGBCOLOR);
|
|
2: (cmyk: TIECMSCMYKCOLOR);
|
|
3: (XYZ: TIECMSXYZCOLOR);
|
|
4: (Yxy: TIECMSYxyCOLOR);
|
|
5: (Lab: TIECMSLabCOLOR);
|
|
6: (gen3ch: TIECMSGENERIC3CHANNEL);
|
|
7: (named: TIECMSNAMEDCOLOR);
|
|
8: (hifi: TIECMSHiFiCOLOR);
|
|
9: (align: TIECMSAlignment);
|
|
end;
|
|
|
|
PIECMSCOLOR = ^TIECMSCOLOR;
|
|
|
|
|
|
TIEPOINTL = packed record
|
|
x: integer;
|
|
y: integer;
|
|
end;
|
|
|
|
TIEDeviceModeW = packed record
|
|
dmDeviceName: array[0..CCHDEVICENAME - 1] of WideChar;
|
|
dmSpecVersion: Word;
|
|
dmDriverVersion: Word;
|
|
dmSize: Word;
|
|
dmDriverExtra: Word;
|
|
dmFields: DWORD;
|
|
|
|
dmPosition: TIEPOINTL;
|
|
dmDisplayOrientation: DWORD;
|
|
dmDisplayFixedOutput: DWORD;
|
|
|
|
dmColor: SHORT;
|
|
dmDuplex: SHORT;
|
|
dmYResolution: SHORT;
|
|
dmTTOption: SHORT;
|
|
dmCollate: SHORT;
|
|
dmFormName: array[0..CCHFORMNAME - 1] of WideChar;
|
|
dmLogPixels: Word;
|
|
dmBitsPerPel: DWORD;
|
|
dmPelsWidth: DWORD;
|
|
dmPelsHeight: DWORD;
|
|
dmDisplayFlags: DWORD;
|
|
dmDisplayFrequency: DWORD;
|
|
dmICMMethod: DWORD;
|
|
dmICMIntent: DWORD;
|
|
dmMediaType: DWORD;
|
|
dmDitherType: DWORD;
|
|
dmICCManufacturer: DWORD;
|
|
dmICCModel: DWORD;
|
|
dmPanningWidth: DWORD;
|
|
dmPanningHeight: DWORD;
|
|
end;
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Gestures
|
|
|
|
const
|
|
|
|
// Messages
|
|
IEWM_GESTURENOTIFY = $011A;
|
|
IEWM_GESTURE = $0119;
|
|
IEWM_TOUCH = $0240;
|
|
IEWM_TABLET_DEFBASE = $02C0;
|
|
IEWM_TABLET_FLICK = IEWM_TABLET_DEFBASE + 11;
|
|
|
|
// Gesture IDs
|
|
IEGID_BEGIN = 1;
|
|
IEGID_END = 2;
|
|
IEGID_ZOOM = 3;
|
|
IEGID_PAN = 4;
|
|
IEGID_ROTATE = 5;
|
|
IEGID_TWOFINGERTAP = 6;
|
|
IEGID_PRESSANDTAP = 7;
|
|
IEGID_ROLLOVER = IEGID_PRESSANDTAP;
|
|
|
|
// Gesture flags - GESTUREINFO.dwFlags
|
|
IEGF_BEGIN = $00000001;
|
|
IEGF_INERTIA = $00000002;
|
|
IEGF_END = $00000004;
|
|
|
|
// gesture configuration flags - set GESTURECONFIG.dwID to zero
|
|
IEGC_ALLGESTURES = $00000001;
|
|
IEGC_ZOOM = $00000001;
|
|
IEGC_PAN = $00000001;
|
|
IEGC_PAN_WITH_SINGLE_FINGER_VERTICALLY = $00000002;
|
|
IEGC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY = $00000004;
|
|
IEGC_PAN_WITH_GUTTER = $00000008;
|
|
IEGC_PAN_WITH_INERTIA = $00000010;
|
|
IEGC_ROTATE = $00000001;
|
|
IEGC_TWOFINGERTAP = $00000001;
|
|
IEGC_PRESSANDTAP = $00000001;
|
|
IEGC_ROLLOVER = IEGC_PRESSANDTAP;
|
|
|
|
|
|
type
|
|
TIEGestureNotifyStruct = packed record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
hwndTarget: HWND;
|
|
ptsLocation: TSmallPoint;
|
|
dwInstanceID: DWORD;
|
|
end;
|
|
PIEGestureNotifyStruct = ^TIEGestureNotifyStruct;
|
|
|
|
TIEWMGestureNotify = packed record
|
|
Msg: DWORD;
|
|
Unused: WPARAM;
|
|
NotifyStruct: PIEGestureNotifyStruct;
|
|
Result: integer;
|
|
end;
|
|
|
|
TIEGESTUREINFO = record // 8 byte alignment
|
|
cbSize: DWORD;
|
|
dwFlags: DWORD;
|
|
dwID: DWORD;
|
|
hwndTarget: HWND;
|
|
ptsLocation: TSmallPoint;
|
|
dwInstanceID: DWORD;
|
|
dwSequenceID: DWORD;
|
|
ullArguments: uint64;
|
|
cbExtraArgs: DWORD;
|
|
end;
|
|
PIEGESTUREINFO = ^TIEGESTUREINFO;
|
|
|
|
HGESTUREINFO = THandle;
|
|
|
|
TIEGESTURECONFIG = packed record
|
|
dwID: DWORD;
|
|
dwWant: DWORD;
|
|
dwBlock: DWORD;
|
|
end;
|
|
PIEGESTURECONFIG = ^TIEGESTURECONFIG;
|
|
|
|
// Gestures
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
procedure IEInitialize_hyiedefs;
|
|
procedure IEFinalize_hyiedefs;
|
|
|
|
|
|
implementation
|
|
|
|
uses
|
|
imageenio, imageenview, imageenproc, hyieutils;
|
|
|
|
|
|
{!!
|
|
<FS>LanguageToStr
|
|
|
|
<FM>Declaration<FC>
|
|
function LanguageToStr(ALanguage : <A TMsgLanguage>) : string;
|
|
|
|
<FM>Description<FN>
|
|
Converts a <A TMsgLanguage> to string, e.g. msEnglish would return 'English', msItalian returns 'Italian', etc.
|
|
|
|
<FM>Example<FC>
|
|
// Create all language menu items
|
|
procedure TMainForm.CreateLanguageMenuItems;
|
|
var
|
|
aLang : TMsgLanguage;
|
|
NewItem: TMenuItem;
|
|
begin
|
|
mnuLanguage.Clear;
|
|
for aLang := Low(TMsgLanguage) to High(TMsgLanguage) do
|
|
begin
|
|
NewItem := TMenuItem.Create(Self);
|
|
NewItem.Caption := LanguageToStr(aLang);
|
|
NewItem.Checked := IEGlobalSettings.MsgLanguage = aLang;
|
|
NewItem.Tag := ord(aLang);
|
|
NewItem.OnClick := LanguageClick;
|
|
mnuLanguage.Add(NewItem)
|
|
end;
|
|
end;
|
|
|
|
// Handle clicking of a language item
|
|
procedure TMainForm.LanguageClick(Sender: TObject);
|
|
var
|
|
aLang : TMsgLanguage;
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to mnuLanguage.Count - 1 do
|
|
mnuLanguage.Items[I].Checked := False;
|
|
aLang := TMsgLanguage(TMenuItem(Sender).Tag);
|
|
IEGlobalSettings.MsgLanguage := aLang;
|
|
TMenuItem(Sender).Checked := True;
|
|
end;
|
|
!!}
|
|
function LanguageToStr(ALanguage : TMsgLanguage) : string;
|
|
begin
|
|
Result := '';
|
|
|
|
case ALanguage of
|
|
msSystem : Result := 'System Default';
|
|
{$IFDEF IESUPPORTENGLISH}
|
|
msEnglish : Result := 'English';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTITALIAN}
|
|
msItalian : Result := 'Italian';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGERMAN}
|
|
msGerman : Result := 'German';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSPANISH}
|
|
msSpanish : Result := 'Spanish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFRENCH}
|
|
msFrench : Result := 'French';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPORTUGUESE}
|
|
msPortuguese : Result := 'Portuguese';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTGREEK}
|
|
msGreek : Result := 'Greek';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTRUSSIAN}
|
|
msRussian : Result := 'Russian';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDUTCH}
|
|
msDutch : Result := 'Dutch';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSWEDISH}
|
|
msSwedish : Result := 'Swedish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTPOLISH}
|
|
msPolish : Result := 'Polish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTJAPANESE}
|
|
msJapanese : Result := 'Japanese';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCZECH}
|
|
msCzech : Result := 'Czech';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFINNISH}
|
|
msFinnish : Result := 'Finnish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTFARSI}
|
|
msFarsi : Result := 'Farsi';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTCHINESE}
|
|
msChinese : Result := 'Chinese (Simplified)';
|
|
msChineseTraditional : Result := 'Chinese (Traditional)';
|
|
msChineseTraditionalBig5 : Result := 'Chinese (Big5)';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTDANISH}
|
|
msDanish : Result := 'Danish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTTURKISH}
|
|
msTurkish : Result := 'Turkish';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTKOREAN}
|
|
msKorean : Result := 'Korean';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTHUNGARIAN}
|
|
msHungarian : Result := 'Hungarian';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTARABIC}
|
|
msArabic : Result := 'Arabic';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTSERBIAN}
|
|
msSerbian : Result := 'Serbian';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTNORWEGIAN}
|
|
msNorwegian : Result := 'Norwegian';
|
|
{$ENDIF}
|
|
{$IFDEF IESUPPORTUSER}
|
|
msUser : Result := 'Custom';
|
|
{$ENDIF}
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
{ TIEVSoftShadow }
|
|
|
|
|
|
{!!
|
|
<FS>TIEVSoftShadow.Assign
|
|
|
|
<FM>Declaration<FC>
|
|
procedure Assign(Source: TIEVSoftShadow);
|
|
|
|
<FM>Description<FN>
|
|
Copies the state of another TIEVSoftShadow object.
|
|
!!}
|
|
procedure TIEVSoftShadow.Assign(Source: TIEVSoftShadow);
|
|
begin
|
|
Enabled := Source.Enabled;
|
|
Radius := Source.Radius;
|
|
OffsetX := Source.OffsetX;
|
|
OffsetY := Source.OffsetY;
|
|
Intensity := Source.Intensity;
|
|
ShadowColor := Source.ShadowColor;
|
|
end;
|
|
|
|
constructor TIEVSoftShadow.Create;
|
|
begin
|
|
inherited;
|
|
|
|
Enabled := false;
|
|
Radius := 3;
|
|
OffsetX := 3;
|
|
OffsetY := 3;
|
|
Intensity := 100;
|
|
ShadowColor := CreateRGB(0, 0, 0);
|
|
end;
|
|
|
|
procedure IEInitialize_hyiedefs;
|
|
begin
|
|
end;
|
|
|
|
procedure IEFinalize_hyiedefs;
|
|
begin
|
|
end;
|
|
|
|
|
|
|
|
end.
|
|
|