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

📄 hyiedefs.pas

📁 ·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Delphi控件。能够保存几种图像格式
💻 PAS
📖 第 1 页 / 共 2 页
字号:
(*
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 + -