本文整理自网络,侵删。

代码文件:unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) OpenDialog1: TOpenDialog; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormPaint(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end;
var Form1: TForm1;
implementation
{$R *.dfm}
uses GDIPOBJ, GDIPAPI, GDIPUTIL;
const OpenFileFilter = 'GDI+ 全部可以读取的图片格式|*.png;*.jpg;*.gif;*.bmp;*.tif;*.emf;*.wmf;*.ico' + '|*.png|*.png' + '|*.jpg|*.jpg' + '|*.gif|*.gif' + '|*.bmp|*.bmp' + '|*.tif|*.tif' + '|*.emf|*.emf' + '|*.wmf|*.wmf' + '|*.ico|*.ico';
ArrExt: array[0..4] of String = ('.png', '.jpg', '.gif', '.bmp', '.tif'); ArrEncodeName: array[0..4] of String = ('image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'image/tiff');
var FileName: string; img: TGPImage;
procedure TForm1.FormCreate(Sender: TObject);begin img := TGPImage.Create; Button1.Caption := '打开'; Button2.Caption := '保存';end;
procedure TForm1.FormDestroy(Sender: TObject);begin img.Free;end;
procedure TForm1.FormPaint(Sender: TObject);var g: TGPGraphics;begin if FileName <> '' then begin g := TGPGraphics.Create(Canvas.Handle); g.DrawImage(img, 10, 10, img.GetWidth, img.GetHeight); g.Free; end;end;
procedure TForm1.Button1Click(Sender: TObject);begin OpenDialog1.Filter := OpenFileFilter; if OpenDialog1.Execute then begin FileName := OpenDialog1.FileName; img.Free; img := TGPImage.Create(FileName); Repaint; end;end;
procedure TForm1.Button2Click(Sender: TObject);var ImgGUID: TGUID; i: Integer;begin if FileName = '' then begin ShowMessage('先要打开文件'); Exit; end;
{一次性保存为 5 种可能的格式} for i := 0 to 4 do begin GetEncoderClsid(ArrEncodeName[i], ImgGUID); {先获取格式编码} img.Save(ChangeFileExt(FileName, ArrExt[i]), ImgGUID); end;
Beep;end;
end.
来源:https://www.cnblogs.com/del/archive/2008/07/07/1237697.html
相关阅读 >>
Delphi application.processmessages的作用
Delphi下用cdo发送邮箱实例(授权码cdo发送邮箱的解决办法)
更多相关阅读请进入《Delphi》频道 >>