📄 iopreviews.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 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 + -