imageenproc.pas

来自「·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Del」· PAS 代码 · 共 606 行 · 第 1/2 页

PAS
606
字号
(*
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 imageenproc;

{$R-}
{$Q-}

{$I ie.inc}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ieview,
  ExtCtrls, hyiedefs, hyieutils, iefft
  {$ifdef IEINCLUDEEXTRATRANSITIONS}
  ,ieXtraTransitions
  {$endif}
  ;

type

{!!
<FS>TGraphFilter

<FM>Declaration<FC>
}
  TGraphFilter = record
    Values: array[0..2, 0..2] of integer;
    Divisor: integer;
  end;
  PIEGraphFilter = ^TGraphFilter;

  // filter exception
  EFilterInvalid = class(Exception);
{!!}

{!!
<FS>TFlipDir

<FM>Declaration<FC>
}
  TFlipDir = (fdHorizontal, fdVertical);
{!!}

  // channels and gray level histogram
{!!
<FS>THistogramItem

<FM>Declaration<FC>
}
  THistogramItem = record
    R: DWord;
    G: DWord;
    B: DWord;
    Gray: DWord;
  end;
{!!}

{!!
<FS>THistogram

<FM>Declaration<FC>
THistogram = array[0..255] of <A THistogramItem>;
!!}
  THistogram = array[0..255] of THistogramItem;

  PHistogram = ^THistogram;

{!!
<FS>TPreviewEffects

<FM>Declaration<FC>
}
  TPreviewEffects = set of (peAll, peContrast, peHSV, peHSL, peRGB, peUserFilt, peEqualize, peBumpMap, peLens, peWave, peMorph, peRotate, peFFT, peGamma, peSharpen);
{!!}

{!!
<FS>TPRPreviewsParamsItems

<FM>Declaration<FC>
}
  TPRPreviewsParamsItems = (prppDefaultLockPreview);
{!!}

{!!
<FS>TPRPreviewsParams

<FM>Declaration<FC>
TPRPreviewsParams = set of <A TPRPreviewsParamsItems>;
!!}
  TPRPreviewsParams = set of TPRPreviewsParamsItems;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TIPDialogParams

{!!
<FS>TIPDialogParams

<FM>Description<FN>
This class allows to get/set several parameters used to control Image Processing Dialog called by <A TImageEnProc.DoPreviews> method.

<FM>Fields<FN>

  CONTRAST_Contrast:integer;
  CONTRAST_Brightness:integer;
  HSV_H:integer;
  HSV_S:integer;
  HSV_V:integer;
  HSL_H:integer;
  HSL_S:integer;
  HSL_L:integer;
  RGB_R:integer;
  RGB_G:integer;
  RGB_B:integer;
  USERFILTER_Values:TGraphFilter;
  EQUALIZATION_ThresholdDown:TRGB;
  EQUALIZATION_ThresholdUp:TRGB;
  EQUALIZATION_EqDown:TRGB;
  EQUALIZATION_EqUp:TRGB;
  BUMPMAP_Left:integer;
  BUMPMAP_Top:integer;
  BUMPMAP_Width:integer;
  BUMPMAP_Height:integer;
  BUMPMAP_Col:TRGB;
  BUMPMAP_Src:integer;
  BUMPMAP_Auto:boolean;
  LENS_Left:integer;
  LENS_Top:integer;
  LENS_Width:integer;
  LENS_Height:integer;
  LENS_Ref: double;
  LENS_Auto:boolean;
  WAVE_Amplitude: integer;
  WAVE_WaveLength: integer;
  WAVE_Phase: integer;
  WAVE_Reflect: boolean;
  MORPH_Filter: integer;
  MORPH_WinSize: integer;
  ROTATE_Angle: double;
  GAMMACORRECTION_Value:double;
  SHARPEN_Sharpen: integer;
  SHARPEN_Size: integer;
  FFT_Left:integer;
  FFT_Top:integer;
  FFT_Right:integer;
  FFT_Bottom:integer;
  FFT_GrayScale:boolean;


<FM>Methods<FN>

<A TIPDialogParams.SaveToFile>
<A TIPDialogParams.LoadFromFile>
<A TIPDialogParams.SaveToStream>
<A TIPDialogParams.LoadFromStream>
<A TIPDialogParams.SetProperty>
<A TIPDialogParams.GetProperty>
<A TIPDialogParams.SetDefaultParams>
!!}
  {$ifdef IEINCLUDEDIALOGIP}
  TIPDialogParams = class
  private
  public
    CONTRAST_Contrast:integer;
    CONTRAST_Brightness:integer;
    HSV_H:integer;
    HSV_S:integer;
    HSV_V:integer;
    HSL_H:integer;
    HSL_S:integer;
    HSL_L:integer;
    RGB_R:integer;
    RGB_G:integer;
    RGB_B:integer;
    USERFILTER_Values:TGraphFilter;
    EQUALIZATION_ThresholdDown:TRGB;
    EQUALIZATION_ThresholdUp:TRGB;
    EQUALIZATION_EqDown:TRGB;
    EQUALIZATION_EqUp:TRGB;
    BUMPMAP_Left:integer;
    BUMPMAP_Top:integer;
    BUMPMAP_Width:integer;
    BUMPMAP_Height:integer;
    BUMPMAP_Col:TRGB;
    BUMPMAP_Src:integer;
    BUMPMAP_Auto:boolean;
    LENS_Left:integer;
    LENS_Top:integer;
    LENS_Width:integer;
    LENS_Height:integer;
    LENS_Ref: double;
    LENS_Auto:boolean;
    WAVE_Amplitude: integer;
    WAVE_WaveLength: integer;
    WAVE_Phase: integer;
    WAVE_Reflect: boolean;
    MORPH_Filter: integer;
    MORPH_WinSize: integer;
    ROTATE_Angle: double;
    GAMMACORRECTION_Value:double;
    SHARPEN_Sharpen: integer;
    SHARPEN_Size: integer;
    FFT_Left:integer;
    FFT_Top:integer;
    FFT_Right:integer;
    FFT_Bottom:integer;
    FFT_GrayScale:boolean;
    constructor Create;
    procedure SaveToFile(const FileName:string);
    procedure LoadFromFile(const FileName:string);
    procedure SaveToStream(Stream:TStream);
    procedure LoadFromStream(Stream:TStream);
    procedure SetProperty(Prop,Value:string);
    function GetProperty(const Prop:string):string;
    procedure SetDefaultParams;
  end;
  {$endif}

// TIPDialogParams
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////


{!!
<FS>TIEFilterPresets

<FM>Declaration<FC>
}
  TIEFilterPresets = integer;
{!!}

{!!
<FS>TIEPreviewEvent

<FM>Declaration<FC>
}
  TIEPreviewEvent = procedure(Sender: TObject; PreviewForm: TForm) of object;
{!!}

{!!
<FS>TIEChannels

<FM>Declaration<FC>
}
  TIEChannels = set of (iecRed, iecGreen, iecBlue);
{!!}

{!!
<FS>TIEUndoSource

<FM>Declaration<FC>
}
  TIEUndoSource = (ieuUnknown, ieuImage, ieuSelection, ieuObject);
{!!}

{!!
<FS>TIEAntialiasMode

<FM>Declaration<FC>
}
  TIEAntialiasMode = (ierFast, ierBilinear, ierBicubic);
{!!}

{!!
<FS>TIEMedFilType

<FM>Declaration<FC>
}
  TIEMedFilType = (mfMedianFilter, mfSharpen, mfEdgeExtract);
{!!}

{!!
<FS>TIESaveUndoEvent

<FM>Declaration<FC>
TIESaveUndoEvent = procedure(Sender:TObject; source:<A TIEUndoSource>) of object;
!!}
  TIESaveUndoEvent = procedure(Sender:TObject; source:TIEUndoSource) of object;


{!!
<FS>TIEDeinterlaceMode

<FM>Declaration<FC>
TIEDeinterlaceMode = (iedDiscard, iedIntelliMerge);

⌨️ 快捷键说明

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