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

📄 tiffilt.pas

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

{$R-}
{$Q-}

{$I ie.inc}

interface

uses Windows, Graphics, classes, sysutils, ImageEnProc, ImageEnIO, hyiedefs, hyieutils;

// TIFF image load/save
procedure TIFFReadStream(Bitmap: TIEBitmap; Stream: TStream; var numi: integer; IOParams: TIOParamsVals; var Progress: TProgressRec; Preview: boolean; var AlphaChannel: TIEMask; TranslateBase: boolean; IgnoreAlpha: boolean; IsExifThumb: boolean);
function TIFFWriteStream(Stream: TStream; Ins: boolean; Bitmap: TIEBitmap; var IOParams: TIOParamsVals; var Progress: TProgressRec): integer;
function _EnumTIFFImStream(Stream: TStream): integer;
function _DeleteTIFFImStream(Stream: TStream; idx: integer): integer;
function _DeleteTIFFImStreamGroup(Stream: TStream; idxlist: pintegerarray; idxcount: integer): integer;
procedure _ExtractTIFFImStream(Stream: TStream; idx: integer; OutStream: TStream);
procedure _InsertTIFFImStream(Stream: TStream; ToInsert: TStream; idx: integer; OutStream: TStream);
function IsTIFFStream(fs:TStream):boolean;
function IsDNGStream(fs:TStream):boolean;

// single tags load
function TIFFLoadTags(Stream: TStream; var numi: integer; ImageIndex: integer; var TIFFEnv: TTIFFEnv): boolean;
procedure TIFFFreeTags(var TIFFEnv: TTIFFEnv);
function TIFFFindTAG(IdTag: word; var TIFFEnv: TTIFFEnv): integer;
function TIFFGetDataLength(var TIFFEnv: TTIFFEnv; nTag: integer): integer;
function TIFFReadSingleValDef(var TIFFEnv: TTIFFEnv; ntag: integer; def: integer): integer;
function TIFFReadSingleRational(var TIFFEnv: TTIFFEnv; nTag: integer): double;
function TIFFReadRationalIndex(var TIFFEnv: TTIFFEnv; nTag: integer; idx: integer): double;
function TIFFReadIndexValN(var TIFFEnv: TTIFFEnv; nTag: integer; idx: integer): integer;
function TIFFReadArrayIntegers(var TIFFEnv: TTIFFEnv; var ar: pintegerarray; NTag: integer): integer;
function TIFFReadRawData(var TIFFEnv: TTIFFEnv; NTag: integer; var Size: integer): pointer;
function TIFFReadString(var TIFFEnv: TTIFFEnv; NTag: integer): string;
function TIFFReadMiniString(var TIFFEnv: TTIFFEnv; NTag: integer): string;
function TIFFReadIFD(imageindex: integer; Offset: integer; var TIFFEnv: TTIFFEnv; var numi: integer): boolean;



implementation

uses giffilter, tifccitt, imageenview, ieview, jpegfilt, neurquant, iezlib;

{$R-}

const
  RATMUL = 1000000;

type

  //TIntegerArray = array [0..Maxint div 16] of integer;
  //PIntegerArray = ^TIntegerArray;

  // Colormap item
  TTIFFColor = packed record
    R, G, B: word;
  end;

  // Colormap
  TTIFFRGBArray = array[0..Maxint div 16] of TTIFFColor;
  PTIFFRGBArray = ^TTIFFRGBArray;

  TTIFFVars = record
    ImageWidth, ImageHeight: integer;
    SamplesPerPixel: integer;
    BitsPerSample: integer;
    RowsPerStrip: integer;
    TileWidth, TileLength: integer;
    PhotometricInterpretation: word;
    PlanarConfiguration: word;
    Orientation: word;
    Compression: word;
    StripOffsets: PIntegerArray;
    StripOffsets_Num: integer; // numero elementi in StripOffsets
    StripByteCounts: PIntegerArray;
    StripByteCounts_Num: integer; // numero elementi in StripByteCounts
    TileOffsets: PIntegerArray;
    TileOffsets_Num: integer; // numero elementi in TileOffsets
    TileByteCounts: PIntegerarray;
    TileByteCounts_Num: integer; // numero elementi in TileByteCounts
    ColorMap: PRGBROW; // Colormap (dim=2^BitsPerSample)
    ColorMap_Num: integer; // numero entries in Colormap (2^BitsPerSample)
    TransferFunction: PTIFFRGBArray;
    Transferfunction_Num: integer; // numero elementi TransferFunction
    ResolutionUnit: integer; // unit

⌨️ 快捷键说明

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