⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imageenview.pas

📁 ·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Delphi控件。能够保存几种图像格式
💻 PAS
📖 第 1 页 / 共 3 页
字号:

  <FI>User actions<FN>

  <A TImageEnView.EnableShiftKey>
  <A TImageEnView.ForceALTkey>
  <A TImageEnView.MagicWandMaxFilter>
  <A TImageEnView.MagicWandMode>
  <A TImageEnView.MagicWandTolerance>
  <A TImageEnView.MouseInteract>
  <A TImageEnView.MouseScrollRate>
  <A TImageEnView.MouseWheelParams>
  <A TImageEnView.ZoomSelectionAspectRatio>

  <FI>Selections<FN>

  <A TImageEnView.DelayDisplaySelection>
  <A TImageEnView.PolySelCount>
  <A TImageEnView.PolySelPoints>
  <A TImageEnView.PolySel>
  <A TImageEnView.SavedSelectionsCount>
  <A TImageEnView.SelColor1>
  <A TImageEnView.SelColor2>
  <A TImageEnView.Selected>
  <A TImageEnView.SelectionAbsHeight>
  <A TImageEnView.SelectionAbsWidth>
  <A TImageEnView.SelectionAspectRatio>
  <A TImageEnView.SelectionBase>
  <A TImageEnView.SelectionIntensity>
  <A TImageEnView.SelectionMaskDepth>
  <A TImageEnView.SelectionMask>
  <A TImageEnView.SelectionOptions>
  <A TImageEnView.SelX1>
  <A TImageEnView.SelX2>
  <A TImageEnView.SelY1>
  <A TImageEnView.SelY2>
  <A TImageEnView.VisibleSelection>

  <FI>Transitions<FN>

  <A TImageEnView.TransitionEndRect>
  <A TImageEnView.TransitionRectMaintainAspectRatio>
  <A TImageEnView.TransitionRunning>
  <A TImageEnView.TransitionStartRect>
  <A TImageEnView.TransitionTiming>

  <FI>Layers<FN>

  <A TImageEnView.CurrentLayer>
  <A TImageEnView.LayersCount>
  <A TImageEnView.LayersCurrent>
  <A TImageEnView.LayersDrawBox>
  <A TImageEnView.LayersSync>
  <A TImageEnView.Layers>
  <A TImageEnView.MaxLayerHeight>
  <A TImageEnView.MaxLayerWidth>

  <FI>Scroll bars<FN>

  <A TImageEnView.FlatScrollBars>
  <A TImageEnView.HScrollBarParams>
  <A TImageEnView.ScrollBarsAlwaysVisible>
  <A TImageEnView.ScrollBars>
  <A TImageEnView.VScrollBarParams>

  <FI>Input/Output<FN>

  <A TImageEnView.IO>

  <FI>Image processing<FN>

  <A TImageEnView.Proc>



<FM>Methods<FN>

  <FI>Transition<FN>

  <A TImageEnView.AbortTransition>
  <A TImageEnView.PrepareTransition>
  <A TImageEnView.RunTransition>

  <FI>Selections<FN>

  <A TImageEnView.AddSelBreak>
  <A TImageEnView.AddSelPoint>
  <A TImageEnView.AssignSelTo>
  <A TImageEnView.CopySelectionToBitmap>
  <A TImageEnView.CopySelectionToIEBitmap>
  <A TImageEnView.DeSelect>
  <A TImageEnView.DiscardSavedSelection>
  <A TImageEnView.EndSelect>
  <A TImageEnView.InvertSelection>
  <A TImageEnView.IsPointInsideSelection>
  <A TImageEnView.LoadSelectionFromFile>
  <A TImageEnView.LoadSelectionFromStream>
  <A TImageEnView.MakeSelectionFeather>
  <A TImageEnView.MergeSelectionFromFile>
  <A TImageEnView.MergeSelectionFromStream>
  <A TImageEnView.MoveSelection>
  <A TImageEnView.RestoreSelection>
  <A TImageEnView.SaveSelection>
  <A TImageEnView.SaveSelectionToFile>
  <A TImageEnView.SaveSelectionToStream>
  <A TImageEnView.SelectCustom>
  <A TImageEnView.SelectEllipse>
  <A TImageEnView.SelectMagicWand>
  <A TImageEnView.SelectRoundRect>
  <A TImageEnView.Select>
  <A TImageEnView.SetSelectionGripStyle>

  <FI>Animated polygons<FN>

  <A TImageEnView.AnimPolygonAddPt>
  <A TImageEnView.AnimPolygonClear>
  <A TImageEnView.AnimPolygonDel>
  <A TImageEnView.AnimPolygonNew>

  <FI>Bitmap<FN>

  <A TImageEnView.Blank>
  <A TImageEnView.ChangeResolution>
  <A TImageEnView.Clear>
  <A TImageEnView.CopyFromPolygon>
  <A TImageEnView.CopyToPolygon>
  <A TImageEnView.DrawTo>
  <A TImageEnView.ImageChange>
  <A TIEView.SetDPI>
  <A TImageEnView.SetExternalBitmap>
  <A TImageEnView.SetNavigator>
  <A TImageEnView.SetSelectedPixelsColor>

  <FI>Bitmap Alpha Channel<FN>

  <A TImageEnView.CopyToBitmapWithAlpha>
  <A TImageEnView.RemoveAlphaChannel>
  <A TImageEnView.SetAlphaRangePixelsColor>
  <A TImageEnView.SetSelectedAreaAlpha>

  <FI>Display<FN>

  <A TImageEnView.CenterImage>
  <A TImageEnView.DisplayImageRect>
  <A TImageEnView.FitToHeight>
  <A TImageEnView.Fit>
  <A TImageEnView.FitToWidth>
  <A TImageEnView.GetIdealZoom>
  <A TImageEnView.GetRenderRectangles>
  <A TImageEnView.LockPaint>
  <A TImageEnView.LockUpdate>
  <A TImageEnView.PaintRect>
  <A TImageEnView.SetChessboardStyle>
  <A TImageEnView.SetViewXY>
  <A TImageEnView.Stretch>
  <A TImageEnView.UnLockPaint>
  <A TImageEnView.UnLockUpdate>
  <A TImageEnView.UpdateNoPaint>
  <A TImageEnView.UpdateRect>
  <A TImageEnView.Update>
  <A TImageEnView.XBmp2Scr>
  <A TImageEnView.XScr2Bmp>
  <A TImageEnView.YBmp2Scr>
  <A TImageEnView.YScr2Bmp>
  <A TImageEnView.ZoomAt>
  <A TImageEnView.ZoomSelection>

  <FI>Layers<FN>

  <A TImageEnView.FindLayerAt>
  <A TImageEnView.LayersAdd>
  <A TImageEnView.LayersClear>
  <A TImageEnView.LayersCreateFromSelection>
  <A TImageEnView.LayersDrawTo>
  <A TImageEnView.LayersFixSizes>
  <A TImageEnView.LayersInsert>
  <A TImageEnView.LayersLoadFromFile>
  <A TImageEnView.LayersLoadFromStream>
  <A TImageEnView.LayersMergeAll>
  <A TImageEnView.LayersMerge>
  <A TImageEnView.LayersMergeTo>
  <A TImageEnView.LayersMove>
  <A TImageEnView.LayersRemove>
  <A TImageEnView.LayersSaveToFile>
  <A TImageEnView.LayersSaveToStream>

  <FI>Others<FN>

  <A TIEView.GetCanvas>
  <A TImageEnView.GetGripAt>



<FM>Events<FN>

  <A TImageEnView.OnBeforeSelectionChange>
  <A TImageEnView.OnDrawBackBuffer>
  <A TImageEnView.OnDrawLayerBox>
  <A TImageEnView.OnDrawLayerGrip>
  <A TImageEnView.OnDShowEvent>
  <A TImageEnView.OnDShowNewFrame>
  <A TImageEnView.OnFinishWork>
  <A TImageEnView.OnImageChange>
  <A TImageEnView.OnLayerNotify>
  <A TIEView.OnMouseEnter>
  <A TImageEnView.OnMouseInResizingGrip>
  <A TImageEnView.OnMouseInSel>
  <A TIEView.OnMouseLeave>
  <A TImageEnView.OnPaint>
  <A TImageEnView.OnProgress>
  <A TImageEnView.OnSaveUndo>
  <A TImageEnView.OnSelectionChange>
  <A TImageEnView.OnSelectionChanging>
  <A TImageEnView.OnSpecialKey>
  <A TImageEnView.OnTransitionStep>
  <A TImageEnView.OnTransitionStop>
  <A TImageEnView.OnViewChange>
  <A TImageEnView.OnZoomIn>
  <A TImageEnView.OnZoomOut>
!!}
  TImageEnView = class(TIEView)
  private

    fLegacyBitmap: boolean; // false=use TIEBitmap, true=use TBitmap
    fUseDrawDibDraw: boolean; // for same behavior of old versions set it to True
    fLCursor: TCursor; // this is default cursor
    fCursor: TCursor; // this is current cursor
    fOnImageChange: TNotifyEvent;
    fOnViewChange: TViewChangeEvent;
    fCenter: boolean; // center image
    fZoomFilter: TResampleFilter;
    fSaveZoomFilter: TResampleFilter; // saved zoomfilter from mousedown to mouseup
    fDelayZoomFilter: boolean; // if true enables fStable, delay zoom filter
    fBackgroundStyle: TIEBackgroundStyle;
    fMagicWandMaxFilter: boolean; // if true apply a max filter to the selection
    fMagicWandTolerance: integer; // 0..255 tolerance
    fMagicWandMode: TIEMagicWandMode;
    fRXScroll, fRYScroll: double;
    fDisplayGrid: boolean;
    fVScrollBarVisible, fHScrollBarVisible: boolean;
    fAniCounter: integer;
    fOnPaint: TNotifyEvent;
    fOnMouseInResizingGrip: TIEMouseInResizingGripEvent;
    fOnZoomIn, fOnZoomOut: TIEZoomEvent;
    fDelayDisplaySelection: boolean;
    fOnProgress: TIEProgressEvent;
    fOnFinishWork: TNotifyEvent;
    fFullUpdateRequest: boolean; // true when Paint requires to repaint full image without cliprect, Paint event set to False
    fBlockPaint: boolean;
    fRectMoving: boolean; // true if we are moving a rectangle
    fDrawVersion: boolean;
    fOnDrawBackBuffer: TNotifyEvent;
    fOnLayerNotify: TIELayerNotify;
    fSelectionAspectRatio: double; // -1 auto aspect , 0=absolute (fSelectionAbsWidth,fSelectionAbsHeight), >0 specify aspect
    fSelectionAbsWidth: integer;
    fSelectionAbsHeight: integer;
    fOnSpecialKey:TIESpecialKeyEvent;
    fNavigator:TImageEnView;
    fNavigatorInside:boolean;
    fUpdateInsideUpdate:boolean;	// true when Update call itself
    fInsideUpdate:boolean;	// true when it is inside Update
    fDelayTimer:integer;
    fLyrResizingClientAreaBox:TRect;  // ClientAreaBox when we begon resizing of a layer
    fZoomSelectionAspectRatio:boolean;
    fMouseScrollRate:double;
    fOnDrawPolygon:TIEOnDrawPolygon;
    //
    fLutLastZoomX: double; // last zoom used by CreateCoordConvLUT
    fLutLastZoomY: double; // last zoom used by CreateCoordConvLUT
    fLutLastFRX: integer; // last frx used by CreateCoordConvLUT
    fLutLastFRY: integer; // last fry used by CreateCoordConvLUT
    fLutLastMaxLayerWidth: integer; // fMaxLayerWidth used by CreateCoordConvLUT
    fLutLastMaxLayerHeight: integer; // fMaxLayerHeight used by CreateCoordConvLUT
    // handscroll
    fHSVX1, fHSVY1: integer; // view in mouse down
    //
    fo1x, fo1y, fo2x, fo2y: integer;
    frx, fry: integer;
    //
    fBitmapWidth, fBitmapHeight: integer; // monitoring bitmap size
    // transition effects
    fTransition: TIETransitionEffects; // effect engine
    fTransitionEffect: TIETransitionType; // transition type
    fTransitionDuration: integer; // transition duration ms
    fMinBitmapSize:integer; // min bitmap size to make it displyed
    fTransitionRectMaintainAspectRatio:boolean;  // If true then when settings TransitionStartRect and TransitionEndRect it is automatically adjusted to correct aspect ratio (of the ImageEnView)
    //
{$IFDEF IEINCLUDEDIRECTSHOW}
    fOnDShowNewFrame: TNotifyEvent;
    fOnDShowEvent: TNotifyEvent;
{$ENDIF}
    fFlatScrollBars:boolean;
    fOnDrawBackground: TIEOnDrawBackground;
    fOnDrawCanvas: TIEOnDrawCanvas;
    fOldHandle:THandle;
    fOnDrawLayerBox:TIEDrawLayerBoxEvent;
    fOnDrawLayerGrip:TIEDrawLayerGrip;
    fVisibleSelection:boolean;
    fOffscreenPaint:boolean;
    // Wall paper
    fWallPaper: TPicture;
    fWallPaperStyle: TIEWallPaperStyle;
    //
    procedure AniPolyFunc(Sender: TObject; UseLockPaint: boolean);
    procedure TimerEvent(Sender: TObject);
    procedure SetViewX(v: integer);
    procedure SetViewY(v: integer);
    procedure SetZoom(v: double);
    procedure SetZoomX(v: double);
    procedure SetZoomY(v: double);
    function GetSelX1: integer;
    function GetSelY1: integer;
    function GetSelX2: integer;
    function GetSelY2: integer;
    procedure SetCenter(v: boolean);
    function GetMouseInteract: TIEMouseInteract;
    procedure SetBackgroundStyle(v: TIEBackgroundStyle);
    procedure DoSelectionChange;
    procedure DoSelectionChanging;
    procedure DoBeforeSelectionChange;
    procedure DoMouseInResizingGrip(Grip: TIEGrip);
    procedure DoMouseInSel;
    procedure DoZoomIn(var NewZoom: double);
    procedure DoZoomOut(var NewZoom: double);
    procedure SetSelectionOptions(v: TIESelectionOptions);
    function GetResizingGrip(x, y: integer; Shift: TShiftState): TIEGrip;
    function GetMovingGrip(x, y: integer; Shift: TShiftState): integer;
    function SelectResizeEx(grip: TIEGrip; newx, newy: integer; aspectratio: boolean): TIEGrip;
    function SelectMoveEx(fMoving, ox, oy: integer; cutBorders:boolean): integer;
    function GetScrollBarsAlwaysVisible: boolean;
    procedure SetScrollBarsAlwaysVisible(v: boolean);
    procedure SetDisplayGrid(v: boolean);
    function GetTransitionRunning: boolean;
    function GetLayersCount: integer;
    function GetLayer(idx: integer): TIELayer;
    procedure PaintSelection(OutBitmap: TBitmap);
    procedure PaintGrid(OutBitmap: TBitmap);
    procedure SetCursor(Value: TCursor);
    procedure SetDelayTimer(Value: integer);
    function GetDelayTimer: integer;
    procedure SetGradientEndColor(Value: TColor);
    procedure DoDrawVersion;
    procedure SetDrawVersion(v: boolean);
    procedure SetSelectionMaskDepth(value: integer);
    procedure MouseResizeLayer(clientlx, cliently: integer; aspectratio:boolean);
{$IFDEF IEINCLUDEDIRECTSHOW}
    procedure DShowNewFrame(var Message: TMessage); message IEM_NEWFRAME;
    procedure DShowEvent(var Message: TMessage); message IEM_EVENT;
{$ENDIF}
    procedure MouseSelectCircle(x, y: integer; Shift: TShiftState);
    procedure MouseSelectRectangle(x, y: integer; Shift: TShiftState);
    procedure SetSelectionAspectRatio(value:double);
    function GetSavedSelectionsCount:integer;
    {$ifdef IEINCLUDEFLATSB}
    procedure SetFlatScrollBars(Value:boolean);
    {$endif}
    procedure SwapSelectionBase;
    procedure NavigatorSelectionChanging(Sender:TObject);
    procedure SetNavigatorRect;
    function GetImageEnVersion:string;
    procedure SetImageEnVersion(Value:string);
    {$ifdef IEDOTNETVERSION}
    procedure WMContextMenu(var Message: TWMContextMenu); message WM_CONTEXTMENU;
    {$endif}
    procedure SetTransitionStartRect(value:TRect);
    function GetTransitionStartRect:TRect;
    procedure SetTransitionEndRect(value:TRect);
    function GetTransitionEndRect:TRect;
    procedure SetOnTransitionStop(value:TNotifyEvent);
    function GetOnTransitionStop:TNotifyEvent;
    procedure SetOnTransitionStep(value:TIETransitionStepEvent);
    function GetOnTransitionStep:TIETransitionStepEvent;
    procedure SetTransitionTiming(value:TIETransitionTiming);
    function GetTransitionTiming:TIETransitionTiming;
    procedure SetWallPaper(Value: TPicture);
    procedure SetWallPaperStyle(Value: TIEWallPaperStyle);
    procedure SetTransitionRectMaintainAspectRatio(value:boolean);
    function AdjustRectToAspectRatio(ARect:TRect):TRect; // Returns an adjusted rect taking into account the aspect ratio of the image and display window
    procedure DoOnDrawPolygon(polygon:integer; point:integer; Canvas:TCanvas; x,y:integer);
    function GetBackBuffer:TBitmap;
    procedure SetOnSaveUndo(value:TIESaveUndoEvent);
    function GetOnSaveUndo:TIESaveUndoEvent;
  protected

    // view and selections stabilization
    fStableReset: integer; // initial fStable value (also available as public property)
    fStable2Reset: integer; // initial fStable2 value
    fStable: integer; // stability counter (0=stable) , decremented each AniPolyFunc
    // setted by SetZoom, SetView## (used for ZoomFilter)
    fStable2: integer; // secondary stablity counter (for selections)
    //
    fDBToDraw: boolean; // if true draw fTBitmap
    fTBitmap: TIEBitmap; // back buffer for DoubleBuffer
    fViewX, fViewY: integer;
    fZoomX: double; // zoom percentage (starting at 1)
    fZoomY: double; // zoom percentage (starting at 1)
    fZoomD100X: double; // fZoomX/100
    f100DZoomX: double; // 100/fZoomX
    fZoomD100Y: double; // fZoomX/100
    f100DZoomY: double; // 100/fZoomX
    fHDrawDib: HDRAWDIB; // direct draw on the screen
    fScrollBars: TScrollStyle;
    fLockPaint: integer; // 0=paint locked
    fOffX, fOffY: integer; // start of view (for centered images)
    fExtX, fExtY: integer; // view extent
    fZZWW, fZZHH: integer; // size of zoomed bitmap
    fBitmap: TBitmap;
    fBitmapInfoHeader256: TBitmapInfoHeader256; // used by DrawTo and PaintRect
    fDoubleBuffer: boolean; // always true (not used)
    fAutoFit: boolean;
    fUpdateInvalidate: boolean; // Se true (default) Update chiamer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -