📄 imageenproc.pas
字号:
<FM>Description<FN>
<FC>iedDiscard<FN> just discards one row every two.
<FC>iedIntelliMerge<FN> merges only if the two fields are similar (less movement).
!!}
TIEDeinterlaceMode = (iedDiscard, iedIntelliMerge);
{!!
<FS>TImageEnProc
<FM>Description<FN>
TImageEnProc provides image processing and analysis tasks on attached <A TImageEnView>, <A TImageEnDBView>, <A TImageEn>, TImage or TBitmap components. Also, it handles all clipboard operations.
It includes an area selection capability for most of image processing tasks (only if the attached component isn't TImageEnView, which already has the area selection capability).
<FM>Properties<FN>
<A TImageEnProc.AttachedBitmap>
<A TImageEnProc.AttachedIEBitmap>
<A TImageEnProc.AttachedImageEn>
<A TImageEnProc.AttachedTImage>
<A TImageEnProc.AutoConvertFormat>
<A TImageEnProc.AutoUndo>
<A TImageEnProc.Background>
<A TImageEnProc.CanRedo>
<A TImageEnProc.CanUndo>
<A TImageEnProc.FiltersInitialDir>
<A TImageEnProc.IPDialogParams>
<A TImageEnProc.MsgLanguage>
<A TImageEnProc.RedoCaptions>
<A TImageEnProc.RedoCount>
<A TImageEnProc.PreviewFont>
<A TImageEnProc.PreviewsParams>
<A TImageEnProc.UndoCaptions>
<A TImageEnProc.UndoCount>
<A TImageEnProc.UndoLimit>
<A TImageEnProc.UndoLocation>
<FM>Methods<FN>
<FI>Shadows<FN>
<A TImageEnProc.AddInnerShadow>
<A TImageEnProc.AddSoftShadow>
<FI>Fourier Analysis (FFT)<FN>
<A TImageEnProc.FTConvertFrom>
<A TImageEnProc.FTCreateImage>
<A TImageEnProc.FTDisplayFrom>
<FI>Paint<FN>
<A TImageEnProc.CastColor>
<A TImageEnProc.ClearSel>
<A TImageEnProc.Clear>
<A TImageEnProc.Fill>
<A TImageEnProc.PaintMark>
<A TImageEnProc.PaintPenMarker>
<FI>Alpha channel<FN>
<A TImageEnProc.CastAlpha>
<A TImageEnProc.SetTransparentColors>
<FI>Custom Image Processing<FN>
<A TImageEnProc.BeginImageProcessing>
<A TImageEnProc.EndImageProcessing>
<FI>Custom Image Analysis<FN>
<A TImageEnProc.BeginImageAnalysis>
<A TImageEnProc.EndImageAnalysis>
<FI>Analysis<FN>
<A TImageEnProc.CalcDensityHistogram>
<A TImageEnProc.CalcImageNumColors>
<A TImageEnProc.CalcImagePalette>
<A TImageEnProc.CalcOrientation>
<A TImageEnProc.CompareWith>
<A TImageEnProc.ComputeImageEquality>
<A TImageEnProc.GetDominantColor>
<A TImageEnProc.GetHistogram>
<A TImageEnProc.GetHSVChannelAll>
<A TImageEnProc.GetHSVChannel>
<A TImageEnProc.GetRGBChannelAll>
<A TImageEnProc.GetRGBChannel>
<A TImageEnProc.SeparateObjects>
<FI>Noise<FN>
<A TImageEnProc.RemoveIsolatedPixels>
<A TImageEnProc.RemoveNoise>
<FI>Pixels<FN>
<A TImageEnProc.AdjustBrightnessContrastSaturation>
<A TImageEnProc.AdjustLumSatHistogram>
<A TImageEnProc.AdjustSaturation>
<A TImageEnProc.AdjustTint>
<A TImageEnProc.ApplyFilterPreset>
<A TImageEnProc.ApplyFilter>
<A TImageEnProc.Blur>
<A TImageEnProc.BumpMapping>
<A TImageEnProc.CastColorRange>
<A TImageEnProc.Closing>
<A TImageEnProc.Colorize>
<A TImageEnProc.Contrast2>
<A TImageEnProc.Contrast3>
<A TImageEnProc.Contrast>
<A TImageEnProc.ConvertTo24Bit>
<A TImageEnProc.ConvertToBW_FloydSteinberg>
<A TImageEnProc.ConvertToBWOrdered>
<A TImageEnProc.ConvertToBWThreshold>
<A TImageEnProc.ConvertToGray>
<A TImageEnProc.ConvertToPalette>
<A TImageEnProc.ConvertTo>
<A TImageEnProc.DisposeChannels>
<A TImageEnProc.Deinterlace>
<A TImageEnProc.EdgeDetect_ShenCastan>
<A TImageEnProc.EdgeDetect_Sobel>
<A TImageEnProc.GammaCorrect>
<A TImageEnProc.HistEqualize>
<A TImageEnProc.HSLvar>
<A TImageEnProc.HSVvar>
<A TImageEnProc.IntensityRGBall>
<A TImageEnProc.Intensity>
<A TImageEnProc.Lens>
<A TImageEnProc.Maximum>
<A TImageEnProc.MedianFilter>
<A TImageEnProc.MergeIEBitmap>
<A TImageEnProc.Merge>
<A TImageEnProc.Minimum>
<A TImageEnProc.Negative>
<A TImageEnProc.Opening>
<A TImageEnProc.RemoveRedEyes>
<A TImageEnProc.Sharpen>
<A TImageEnProc.Threshold2>
<A TImageEnProc.Threshold>
<A TImageEnProc.WallisFilter>
<A TImageEnProc.Wave>
<A TImageEnProc.WhiteBalance_coef>
<A TImageEnProc.WhiteBalance_WhiteAt>
<FI>Clipboard<FN>
<A TImageEnProc.CopyToClipboard>
<A TImageEnProc.PasteFromClipboard>
<A TImageEnProc.PointPasteFromClip>
<A TImageEnProc.SelCopyToClip>
<A TImageEnProc.SelCutToClip>
<A TImageEnProc.SelPasteFromClipStretch>
<A TImageEnProc.SelPasteFromClip>
<FI>Steganographie<FN>
<A TImageEnProc.ClearHiddenText>
<A TImageEnProc.GetHiddenDataSpace>
<A TImageEnProc.ReadHiddenData>
<A TImageEnProc.ReadHiddenText>
<A TImageEnProc.WriteHiddenData>
<A TImageEnProc.WriteHiddenText>
<FI>Geometric<FN>
<A TImageEnProc.AutoCrop>
<A TImageEnProc.AutoCrop2>
<A TImageEnProc.CropSel>
<A TImageEnProc.Crop>
<A TImageEnProc.Flip>
<A TImageEnProc.ImageResize>
<A TImageEnProc.MakeTile>
<A TImageEnProc.RadialStretch>
<A TImageEnProc.Resample>
<A TImageEnProc.ResampleTo>
<A TImageEnProc.RotateAndCrop>
<A TImageEnProc.Rotate>
<A TImageEnProc.RoundImage>
<A TImageEnProc.ShiftChannel>
<A TImageEnProc.SkewDetectionFine>
<A TImageEnProc.SkewDetection>
<FI>Automatic Image Enhancement<FN>
<A TImageEnProc.AdjustGainOffset>
<A TImageEnProc.AutoImageEnhance1>
<A TImageEnProc.AutoImageEnhance2>
<A TImageEnProc.AutoSharp>
<A TImageEnProc.HistAutoEqualize>
<A TImageEnProc.WhiteBalance_AutoWhite>
<A TImageEnProc.WhiteBalance_GrayWorld>
<FI>Undo<FN>
<A TImageEnProc.ClearAllUndo>
<A TImageEnProc.ClearUndoAt>
<A TImageEnProc.ClearUndo>
<A TImageEnProc.SaveUndoCaptioned>
<A TImageEnProc.SaveUndo>
<A TImageEnProc.UndoAt>
<A TImageEnProc.UndoPeekAt>
<A TImageEnProc.UndoRect>
<A TImageEnProc.Undo>
<FI>Redo<FN>
<A TImageEnProc.ClearAllRedo>
<A TImageEnProc.ClearRedo>
<A TImageEnProc.RedoAt>
<A TImageEnProc.RedoPeekAt>
<A TImageEnProc.Redo>
<A TImageEnProc.SaveRedoCaptioned>
<A TImageEnProc.SaveRedo>
<FI>Others<FN>
<A TImageEnProc.DoPreviews>
<A TImageEnProc.GetReSel>
<A TImageEnProc.Update>
<FM>Events<FN>
<A TImageEnProc.OnFinishWork>
<A TImageEnProc.OnPreview>
<A TImageEnProc.OnProgress>
<A TImageEnProc.OnSaveUndo>
!!}
TImageEnProc = class(TComponent)
private
{ Private declarations }
fAutoUndo: boolean;
fImageEnView: TIEView; // refers to TIEView (fbitmap=fimageenview.bitmap)
fImageEnViewIdx: integer; // bitmap change index (-1=nothing)
fBackground: TColor; // valid only if fImageEnview=nil
fMsgLanguage: TMsgLanguage;
fPreviewsParams: TPRPreviewsParams;
fPreviewFont: TFont;
fOnPreview: TIEPreviewEvent;
fTImage: TImage; // riferimento a TImage
fFiltersInitialDir: string;
fIEBitmap: TIEBitmap; // encapsulates fBitmap if SetBitmap, SetAttachedBitmap, SetAttachedImageEn, SetTImage are called
fIEBitmapCreated: boolean; // true is fIEBitmap is created by TImageEnIO
{$ifdef IEINCLUDEDIALOGIP}
fIPDialogParams:TIPDialogParams;
{$endif}
fAutoConvertFormat:boolean; // if true functions that call MakeConsistentBitmap will convert the pixelformat to the requested one
procedure SetAttachedBitmap(atBitmap: TBitmap);
procedure SetAttachedImageEn(atImageEn: TIEView);
function GetReBackground: TColor;
procedure SetReBackground(v: TColor);
procedure SetPreviewFont(f: TFont);
procedure SetTImage(v: TImage);
procedure SetPRPreviewParams(v: TPRPreviewsParams);
function GetPRPreviewParams: TPRPreviewsParams;
function GetCanUndo: boolean;
function GetCanRedo: boolean;
function GetUndoCount: integer;
procedure SetUndoCaptions(index: integer; const Value: string);
function GetUndoCaptions(index: integer): string;
function GetRedoCount: integer;
function GetRedoCaptions(index: integer): string;
procedure SetUndoLimit(v: integer);
protected
{ Protected declarations }
fUndoList: TList; // list of undo objects
fUndoSource: TList; // list of undo sources
fUndoLocation: TIELocation;
fUndoLimit: integer;
fUndoCaptions: TStringList;
fRedoList: TList; // list of redo objects
fRedoSource: TList; // list of redo sources
fRedoCaptions: TStringList;
fBitmap: TBitmap; // working bitmap (if fImageEnView is <>nil then fBitmap=FImageEnView.bitmap)
fOnProgress: TIEProgressEvent;
fOnFinishWork: TNotifyEvent;
fOnSaveUndo: TIESaveUndoEvent;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure OnBitmapChange(Sender: TObject; destroying: boolean);
procedure SetIEBitmap(bmp: TIEBitmap);
procedure SetAttachedIEBitmap(bmp: TIEBitmap);
function MakeConsistentBitmap(allowedFormats: TIEPixelFormatSet): boolean;
procedure DoFinishWork; virtual;
function CheckFormat(allowedFormats: TIEPixelFormatSet):boolean;
function GetDPIX:integer;
function GetDPIY:integer;
public
{ Public declarations }
constructor Create(Owner: TComponent); override;
destructor Destroy; override;
property AttachedBitmap: TBitmap read fBitmap write SetAttachedBitmap;
property AttachedIEBitmap: TIEBitmap read fIEBitmap write SetAttachedIEBitmap;
procedure Update;
{!!
<FS>TImageEnProc.FiltersInitialDir
<FM>Declaration<FC>
property FiltersInitialDir:string;
<FM>Description<FN>
FiltersInitialDir contains the initial directory in the previews dialog for the 搖ser filters
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -