📄 hyiedefs.pas
字号:
{!!
<FS>RGBROW
<FM>Declaration<FC>
type RGBROW = array[0 . . Maxint div 16] of <A TRGB>;
!!}
// row of TRGB
RGBROW = array[0..Maxint div 16] of TRGB;
// row of bytes
TBYTEROW = array[0..Maxint div 16] of byte;
// array of byte rows
TBYTEROWS = array[0..Maxint div 16] of PBYTEROW;
{!!
<FS>IntegerArray
<FM>Declaration<FC>
}
IntegerArray = array[0..MaxInt div 16] of integer;
{!!}
// 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>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;
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:TIEJob; per:integer) of object;
<FM>Description<FN>
A TIEJobEvent is called during ImageEn processing.
job is the job type in progress.
per is percentage of performed work related to job.
The job 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;
{!!}
// resample filters
{!!
<FS>TResampleFilter
<FM>Declaration<FC>
TResampleFilter = (rfNone, rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfLinear, rfFastLinear, rfBilinear, rfBicubic, rfProjectBW, rfProjectWB);
<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
For projects (white on black or black on white) we suggest: rfProjectBW and rfProjectWB
!!}
TResampleFilter = (rfNone, rfTriangle, rfHermite, rfBell, rfBSpline, rfLanczos3, rfMitchell, rfNearest, rfLinear, rfFastLinear, rfBilinear, rfBicubic, rfProjectBW, rfProjectWB);
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, msUser);
!!}
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
{$ENDIF}
{$IFDEF IESUPPORTDANISH}
, msDanish
{$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_COMMONGRAPHICFILES, IEMSG_ALLFILES,
IEMSG_HSV, IEMSG_HSL, IEMSG_RGB, IEMSG_FFT, IEMSG_SHARPEN, IEMSG_CHANNELS
);
{!!}
const
IESELBREAK = $FFFFF; // selection break code
IETAGSIZE: array[1..12] of word = (1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8); // size of tags
// 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;
var
ieMessages: array[TMsgLanguage] of array[TMsgLanguageWords] of string;
gAVIFILEinit: boolean; // true if AVIFILE library has been initialized
gThreadCS: TRTLCriticalSection; // global critical section
{!!
<FS>gRedToGrayCoef
<FM>Declaration<FC>
gRedToGrayCoef:integer;
<FM>Description<FN>
Specify the red coefficient used to convert from color to gray scale. Default values are 21, 71 and 8. The convertion formula is:
<FC>gray := (Red * <A gRedToGrayCoef> + Green * <A gGreenToGrayCoef> + Blue * <A gBlueToGrayCoef>) div 100;
!!}
gRedToGrayCoef:integer;
{!!
<FS>gGreenToGrayCoef
<FM>Declaration<FC>
gGreenToGrayCoef:integer;
<FM>Description<FN>
Specify the green coefficient used to convert from color to gray scale. Default values are 21, 71 and 8. The convertion formula is:
<FC>gray := (Red * <A gRedToGrayCoef> + Green * <A gGreenToGrayCoef> + Blue * <A gBlueToGrayCoef>) div 100;
!!}
gGreenToGrayCoef:integer;
{!!
<FS>gBlueToGrayCoef
<FM>Declaration<FC>
gBlueToGrayCoef:integer;
<FM>Description<FN>
Specify the blue coefficient used to convert from color to gray scale. Default values are 21, 71 and 8. The convertion formula is:
<FC>gray := (Red * <A gRedToGrayCoef> + Green * <A gGreenToGrayCoef> + Blue * <A gBlueToGrayCoef>) div 100;
!!}
gBlueToGrayCoef:integer;
{!!
<FS>iegDialogsBackground
<FM>Declaration<FC>
iegDialogsBackground:(iedbDefault, iedbPaper, iedbMetal);
<FM>Description<FN>
Specify the default dialogs (image processing, printing, ..) background style. This is not the image background, but actually the dialog background.
!!}
iegDialogsBackground:(iedbDefault, iedbPaper, iedbMetal);
{$IFDEF DEMOVERSION}
procedure ie_ctrlview(canvas: TCanvas);
procedure ie_ctrlbmp(bmp:TObject);
{$ENDIF}
implementation
uses hyieutils, imageenio,imageenview,imageenproc;
{$IFDEF DEMOVERSION}
{$I demo1.inc}
{$ENDIF}
initialization
begin
InitializeCriticalSection(gThreadCS);
gRedToGrayCoef:=21;
gGreenToGrayCoef:=71;
gBlueToGrayCoef:=8;
iegDialogsBackground:=iedbDefault;
end;
finalization
begin
DeleteCriticalSection(gThreadCS);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -