📄 hyiedefs.pas
字号:
(*
Copyright (c) 1998-2007 by HiComponents. All rights reserved.
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.
HiComponents grants you the right to include the compiled component
in your application, whether COMMERCIAL, SHAREWARE, or FREEWARE,
BUT YOU MAY NOT DISTRIBUTE THIS SOURCE CODE OR ITS COMPILED .DCU IN ANY FORM.
ImageEn, IEvolution and ImageEn ActiveX may not be included in any commercial,
shareware or freeware libraries or components.
email: support@hicomponents.com
http://www.hicomponents.com
*)
unit hyiedefs;
{$R-}
{$Q-}
{$I ie.inc}
interface
uses Windows, Messages, SysUtils, Graphics;
{$IFDEF FPC}
uses SysUtils;
{$ENDIF}
{$IFDEF FPC}
const
LF_FACESIZE = 32;
type
TCustomControl = TObject;
TRGBQUAD = packed record
rgbBlue: Byte;
rgbGreen: Byte;
rgbRed: Byte;
rgbReserved: Byte;
end;
PPoint = ^TPoint;
TPoint = record
x: Longint;
y: Longint;
end;
PLogFont = ^TLogFont;
TLogFont = packed record
lfHeight: Longint;
lfWidth: Longint;
lfEscapement: Longint;
lfOrientation: Longint;
lfWeight: Longint;
lfItalic: Byte;
lfUnderline: Byte;
lfStrikeOut: Byte;
lfCharSet: Byte;
lfOutPrecision: Byte;
lfClipPrecision: Byte;
lfQuality: Byte;
lfPitchAndFamily: Byte;
lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar;
end;
{$ENDIF}
const
// version details
IEMAINVERSION = '2.3.0';
IEMAINDATEDD = 12;
IEMAINDATEMM = 4;
IEMAINDATEYY = 2007;
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;
type
// pointers
PBitmapInfoHeader256 = ^TBitmapInfoHeader256;
{!!
<FS>PPointArray
<FM>Declaration<FC>
PPointArray = ^<A TPointArray>;
!!}
PPointArray = ^TPointArray;
PIEPointArray = ^TIEPointArray;
{!!
<FS>PPointerArray
<FM>Declaration<FC>
PPointerArray = ^<A TPointerArray>;
!!}
PPointerArray = ^TPointerArray;
PDoubleArray = ^TDoubleArray;
PDWordArray = ^TDWordArray;
psinglearray = ^tsinglearray;
PRGBA = ^TRGBA;
PIERGBAPalette = ^TIERGBAPalette;
{!!
<FS>pRGB
<FM>Declaration<FC>
type pRGB = ^<A TRGB>;
!!}
PRGB = ^TRGB;
PIERGBPalette = ^TIERGBPalette;
PCMYK = ^TCMYK;
PCIELAB = ^TCIELAB;
PCIELABROW = ^TCIELABROW;
PYCBCR = ^TYCBCR;
PCMYKROW = ^TCMYKROW;
{!!
<FS>pRGBROW
<FM>Declaration<FC>
type pRGBROW = ^<A RGBROW>;
!!}
PRGBROW = ^RGBROW;
PRGB48ROW = ^TRGB48ROW;
PBYTEROW = ^TBYTEROW;
PBYTEROWS = ^TBYTEROWS;
{!!
<FS>pIntegerArray
<FM>Declaration<FC>
pIntegerArray = ^<A IntegerArray>;
!!}
pIntegerArray = ^IntegerArray;
{!!
<FS>pPRGBArray
<FM>Declaration<FC>
type pPRGBArray = ^PRGBArray;
!!}
PPRGBArray = ^PRGBArray;
pboolean = ^boolean;
PProgressRec = ^TProgressRec;
// 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;
{!!}
{$IFDEF FPC}
TPointArray = array[0..Maxint div 16] of TPoint;
{$ENDIF}
// Why this? Because C++Builder doesn't want TPointArray or PPointArray for variable declarations (not function members)
TIEPoint = record
X: Longint;
Y: Longint;
end;
TIEPointArray = array[0..Maxint div 16] of TIEPoint;
{!!
<FS>TPointerArray
<FM>Declaration<FC>
TPointerArray = array[0..maxint div 16] of pointer;
}
TPointerArray = array[0..maxint div 16] of pointer;
{!!}
TDoubleArray = array[0..maxint div 16] of double;
TDWordArray = array[0..maxint div 16] of dword;
tsinglearray = array[0..maxint div 16] of single;
{!!
<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>PRGB48
<FM>Declaration<FC>
PRGB48 = ^<A TRGB48>;
!!}
PRGB48 = ^TRGB48;
TIELine = record
P, Q: TPoint;
end;
TIELineArray = array[0..8192] of TIELine;
PIELineArray = ^TIELineArray;
TIERGBAPalette = array[0..maxint div 16] of TRGBA;
{!!
<FS>TRGB
<FM>Declaration<FC>
}
TRGB = packed record
b: byte;
g: byte;
r: byte;
end;
{!!}
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>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;
{!!}
TCMYKROW = array[0..Maxint div 16] of TCMYK;
TRGB48ROW = array[0..Maxint div 16] of TRGB48;
TCIELABROW = array[0..Maxint div 16] of TCIELAB;
T3dPoint = record
x, y, z: double;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -