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

📄 iopreviews.pas

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

{$R-}
{$Q-}

{$I ie.inc}

{$IFDEF IEINCLUDEDIALOGIO}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  ImageEnProc, ComCtrls, StdCtrls, ImageEnView, ImageEn, ExtCtrls, ImageEnIO,
  Buttons, hyiedefs, ieview, hyieutils, Dialogs;

type
  TfIOPreviews = class(TForm)
    Button1: TButton;
    Button2: TButton;
    PageControl1: TPageControl;
    TabSheetJPEG1: TTabSheet;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Edit22: TEdit;
    TrackBar13: TTrackBar;
    GroupBox5: TGroupBox;
    Label26: TLabel;
    Label27: TLabel;
    CheckBox2: TCheckBox;
    ComboBox1: TComboBox;
    Edit23: TEdit;
    UpDown11: TUpDown;
    Label3: TLabel;
    Label4: TLabel;
    CheckBox3: TCheckBox;
    Button3: TButton;
    TabSheetTIFF1: TTabSheet;
    Label5: TLabel;
    ComboBox2: TComboBox;
    Label6: TLabel;
    Edit1: TEdit;
    UpDown1: TUpDown;
    Label7: TLabel;
    ComboBox3: TComboBox;
    GroupBox1: TGroupBox;
    Label8: TLabel;
    Label10: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Label12: TLabel;
    Edit4: TEdit;
    Label13: TLabel;
    Edit5: TEdit;
    Label14: TLabel;
    Edit6: TEdit;
    Label15: TLabel;
    Edit7: TEdit;
    Label16: TLabel;
    Edit8: TEdit;
    Label19: TLabel;
    ComboBox4: TComboBox;
    TabSheetGIF1: TTabSheet;
    Label20: TLabel;
    Edit9: TEdit;
    UpDown2: TUpDown;
    Label21: TLabel;
    ComboBox5: TComboBox;
    Label34: TLabel;
    Panel3: TPanel;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Label35: TLabel;
    Panel4: TPanel;
    GroupBox2: TGroupBox;
    Edit12: TEdit;
    Label33: TLabel;
    Label31: TLabel;
    Edit10: TEdit;
    Label32: TLabel;
    Edit11: TEdit;
    Label36: TLabel;
    TabSheetBMP1: TTabSheet;
    Label37: TLabel;
    ComboBox6: TComboBox;
    Label38: TLabel;
    ComboBox7: TComboBox;
    TabSheetPCX1: TTabSheet;
    Label43: TLabel;
    ComboBox8: TComboBox;
    Label44: TLabel;
    ComboBox9: TComboBox;
    TabSheetPNG1: TTabSheet;
    Label49: TLabel;
    ComboBox10: TComboBox;
    Label54: TLabel;
    Panel1: TPanel;
    ColorDialog1: TColorDialog;
    GroupBox3: TGroupBox;
    Label55: TLabel;
    ComboBox11: TComboBox;
    CheckBox6: TCheckBox;
    Label56: TLabel;
    ComboBox12: TComboBox;
    Label57: TLabel;
    ComboBox13: TComboBox;
    TabSheetTGA1: TTabSheet;
    Label62: TLabel;
    ComboBox14: TComboBox;
    Label63: TLabel;
    Panel5: TPanel;
    CheckBox1: TCheckBox;
    Label64: TLabel;
    Edit13: TEdit;
    Label65: TLabel;
    Edit14: TEdit;
    Label9: TLabel;
    Label11: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label22: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    Label45: TLabel;
    Label46: TLabel;
    Label47: TLabel;
    Label48: TLabel;
    Label50: TLabel;
    Label51: TLabel;
    Label52: TLabel;
    Label53: TLabel;
    Label58: TLabel;
    Label59: TLabel;
    Label60: TLabel;
    Label61: TLabel;
    Button4: TButton;
    TabSheetJ20001: TTabSheet;
    Label66: TLabel;
    Edit15: TEdit;
    TrackBar1: TTrackBar;
    Label67: TLabel;
    Label68: TLabel;
    Label69: TLabel;
    Label70: TLabel;
    Label71: TLabel;
    ComboBox15: TComboBox;
    TabSheetJPEG2: TTabSheet;
    Label72: TLabel;
    Edit16: TEdit;
    TrackBar2: TTrackBar;
    Label73: TLabel;
    Label74: TLabel;
    Label75: TLabel;
    Label76: TLabel;
    TabSheetTIFF2: TTabSheet;
    Label77: TLabel;
    Label78: TLabel;
    Label79: TLabel;
    Label80: TLabel;
    Label81: TLabel;
    ComboBox16: TComboBox;
    Label82: TLabel;
    ComboBox17: TComboBox;
    TabSheetGIF2: TTabSheet;
    Label83: TLabel;
    Label84: TLabel;
    Label85: TLabel;
    Label86: TLabel;
    Label87: TLabel;
    ComboBox18: TComboBox;
    chkLockPreview: TCheckBox;
    Image1: TImage;
    Label1: TLabel;
    ImageEn1: TImageEnView;
    Label2: TLabel;
    ImageEn2: TImageEnView;
    ProgressBar1: TProgressBar;
    procedure PageControl1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Edit22Change(Sender: TObject);
    procedure TrackBar13Change(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ImageEn1ViewChange(Sender: TObject; Change: Integer);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ComboBox2Click(Sender: TObject);
    procedure Panel3Click(Sender: TObject);
    procedure Panel4Click(Sender: TObject);
    procedure ComboBox5Click(Sender: TObject);
    procedure ComboBox6Change(Sender: TObject);
    procedure ComboBox8Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ComboBox10Change(Sender: TObject);
    procedure Panel1Click(Sender: TObject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure ComboBox14Click(Sender: TObject);
    procedure Panel5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Edit15Change(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure Edit16Change(Sender: TObject);
    procedure TrackBar2Change(Sender: TObject);
    procedure ComboBox16Change(Sender: TObject);
    procedure ComboBox18Change(Sender: TObject);
    procedure ImageEn1Progress(Sender: TObject; per: Integer);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
    pp: TPreviewParams;
    msgCancel: string; // Stringa 'Cancel'
    dochange: boolean; // se true i controlli possono cambiare il loro stato
    procedure applyAct;
    function HasTIFFLZW: boolean;
    function CompToCombo(v: TIOTIFFCompression): integer;
    function ComboToComp(i: integer): TIOTIFFCompression;
  public
    { Public declarations }
    fSimplified: boolean; // use simplified tabs
    fParams: TIOParamsVals;
    JPEG_Quality: integer;
    JPEG_Photometric: integer;
    JPEG_DCTMethod: integer;
    JPEG_OptimalHuffman: boolean;
    JPEG_Smooth: integer;
    JPEG_Progressive: boolean;
{$IFDEF IEINCLUDEJPEG2000}
    J2000_Rate: double;
    J2000_ColorSpace: integer;
{$ENDIF}
    TIFF_Compression: TIOTIFFCompression;
    TIFF_ImageIndex: integer;
    TIFF_PhotometInterpret: TIOTIFFPhotometInterpret;
    TIFF_XPos: integer;
    TIFF_YPos: integer;
    TIFF_DocumentName: string;
    TIFF_ImageDescription: string;
    TIFF_PageName: string;
    TIFF_PageNumber: integer;
    TIFF_PageCount: integer;
    TIFF_BitsPerSample: integer;
    TIFF_SamplesPerPixel: integer;
    TIFF_LZWDecompFunc: TTIFFLZWDecompFunc;
    TIFF_LZWCompFunc: TTIFFLZWCompFunc;
    GIF_ImageIndex: integer;
    GIF_XPos: integer;
    GIF_YPos: integer;
    GIF_DelayTime: integer;
    GIF_FlagTranspColor: boolean;
    GIF_TranspColor: TRGB;
    GIF_Interlaced: boolean;
    GIF_Background: TRGB;
    GIF_BitsPerSample: integer;
    GIF_LZWDecompFunc: TGIFLZWDecompFunc;
    GIF_LZWCompFunc: TGIFLZWCompFunc;
    BMP_Compression: TIOBMPCompression;
    BMP_BitsPerPixel: integer; // index of comboxbox (0=1bit, 1=4bit, 2=8bit...)
    PCX_Compression: TIOPCXCompression;
    PCX_BitsPerPixel: integer; // index of comboxbox (0=1bit, 1=4bit, 2=8bit...)
    PNG_Colors: integer;
    PNG_Interlaced: boolean;
    PNG_Background: TRGB;
    PNG_Filter: integer;
    PNG_Compression: integer;
    TGA_Colors: integer; // index (0=1bit, 1=8bit, 2=24bit)
    TGA_Background: TRGB;
    TGA_Compressed: boolean;
    TGA_Name: string;
    TGA_Description: string;
    DefaultLockPreview: boolean;
    ars: array[0..7] of boolean;
    xper: integer;
    xdiv: integer;
    fDefaultDitherMethod: TIEDitherMethod;
    fInitialized:boolean;
    procedure SetLanguage(l: TMsgLanguage);
    procedure ApplyParameters;
    procedure ResetParameters;
    function SetPreviewParams(xpp: TPreviewParams): boolean;
  end;

implementation

{$R-}

{$R *.DFM}

function TfIOPreviews.HasTIFFLZW: boolean;
begin
  result := @DefTIFF_LZWCOMPFUNC <> nil;
end;

// convert from compression value to combobox index

function TfIOPreviews.CompToCombo(v: TIOTIFFCompression): integer;
var
  d: integer;
begin
  result := 0;
  if not HasTIFFLZW then
    d := 1
  else
    d := 0;
  case v of
    ioTIFF_UNCOMPRESSED: result := 0;
    ioTIFF_CCITT1D: result := 1;
    ioTIFF_G3FAX1D: result := 2;
    ioTIFF_G3FAX2D: result := 3;
    ioTIFF_G4FAX: result := 4;
    ioTIFF_LZW:
      begin
        if HasTIFFLZW then
          result := 5
        else
          result := 6; // if not lzw available set packbits
      end;
    ioTIFF_JPEG: result := 6 - d; // 5 if not lzw
    ioTIFF_PACKBITS: result := 7 - d; // 6 if not lzw
    ioTIFF_ZIP: result := 8 - d;  // 7 if not lzw
    ioTIFF_UNKNOWN: result := 0; // unknow becomes uncompressed
  end;
end;

// convert from combobox index to compression value

function TfIOpreviews.ComboToComp(i: integer): TIOTIFFCompression;
begin
  result := ioTIFF_UNCOMPRESSED;
  case i of
    0: result := ioTIFF_UNCOMPRESSED;
    1: result := ioTIFF_CCITT1D;
    2: result := ioTIFF_G3FAX1D;
    3: result := ioTIFF_G3FAX2D;
    4: result := ioTIFF_G4FAX;
    5: if HasTIFFLZW then
        result := ioTIFF_LZW
       else
        result := ioTIFF_JPEG;
    6: if HasTIFFLZW then
        result := ioTIFF_JPEG
       else
        result := ioTIFF_PACKBITS;
    7: if HasTIFFLZW then
        result := ioTIFF_PACKBITS
       else
        result := ioTIFF_ZIP;
    8: if HasTIFFLZW then
        result := ioTIFF_ZIP;
  end;
end;

/////////////////////////////////////////////////////////////////////////////////////

procedure TfIOPreviews.FormDestroy(Sender: TObject);
begin
end;

/////////////////////////////////////////////////////////////////////////////////////

procedure TfIOPreviews.FormCreate(Sender: TObject);
{$IFDEF IEFIXPREVIEWS}
var
  q: integer;
{$ENDIF}
begin
  fInitialized:=false;
  fDefaultDitherMethod := ieThreshold;
  with ImageEn1.IO do
  begin
    PreviewFont.Charset := DEFAULT_CHARSET;
    PreviewFont.Color := clWindowText;
    PreviewFont.Height := -11;
    PreviewFont.Name := 'MS Sans Serif';
    PreviewFont.Style := [];
  end;
  with ImageEn2.IO do
  begin
    PreviewFont.Charset := DEFAULT_CHARSET;
    PreviewFont.Color := clWindowText;
    PreviewFont.Height := -11;
    PreviewFont.Name := 'MS Sans Serif';
    PreviewFont.Style := [];
  end;
  msgCancel := '&Cancel';
{$IFDEF IEFIXPREVIEWS}
  for q := 0 to ComponentCount - 1 do
    if (Components[q] is TTrackBar) then
      (Components[q] as TTrackBar).ThumbLength := 10;
{$ENDIF}
{$IFDEF IEDELPHI7}
  Panel3.ParentBackground := false;
  Panel4.ParentBackground := false;
  Panel1.ParentBackground := false;
  Panel5.ParentBackground := false;
{$ENDIF}
{$IFDEF IEDELPHI9}
  Panel3.ParentBackground := false;
  Panel4.ParentBackground := false;
  Panel1.ParentBackground := false;
  Panel5.ParentBackground := false;

⌨️ 快捷键说明

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