常见图象格式转换技术作者:lyboy99 e-mail:lyboy99@sina.com url: http://hnh.126.com
给大家提供几个常用的图象格式转换方法和其转换函数希望可以对你有帮助1. ICO图标转换BMP格式2. 32x32 BMP格式图象转换为 ICO格式3.转换BMP->JPEG文件格式4.JPEG 转换为BMP函数5.Bmp转换为JPEG文件格式函数-------------------------------------------------------------------------------------------------------------------------1.Chinese : ICO图标转换BMP格式English :(Conversion from ICO to BMP)--------------------------------------------------------
var Icon : TIcon; Bitmap : TBitmap; begin Icon := TIcon.Create; Bitmap := TBitmap.Create; Icon.LoadFromFile('c:/picture.ico'); Bitmap.Width := Icon.Width; Bitmap.Height := Icon.Height; Bitmap.Canvas.Draw(0, 0, Icon ); Bitmap.SaveToFile('c:/picture.bmp'); Icon.Free; Bitmap.Free;===================================2.Chinese: 32x32 BMP格式图象转换为 ICO格式English :32x32 bit Bitmaps to ICO's-----------------------------------unit main;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Image1: TImage; Image2: TImage; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);var winDC, srcdc, destdc : HDC; oldBitmap : HBitmap; iinfo : TICONINFO;begin GetIconInfo(Image1.Picture.Icon.Handle, iinfo);
WinDC := getDC(handle); srcDC := CreateCompatibleDC(WinDC); destDC := CreateCompatibleDC(WinDC); oldBitmap := SelectObject(destDC, iinfo.hbmColor); oldBitmap := SelectObject(srcDC, iinfo.hbmMask);
BitBlt(destdc, 0, 0, Image1.picture.icon.width, Image1.picture.icon.height, srcdc, 0, 0, SRCPAINT); Image2.picture.bitmap.handle := SelectObject(destDC, oldBitmap); DeleteDC(destDC); DeleteDC(srcDC); DeleteDC(WinDC);
image2.Picture.Bitmap.savetofile(ExtractFilePath(Application.ExeName) + 'myfile.bmp');end;
procedure TForm1.FormCreate(Sender: TObject);begin image1.picture.icon.loadfromfile('c:/myicon.ico');end;
end.==================================================================3. Chinese:转换BMP->JPEG文件格式Englsh:convert the bitmap into a JPEG file format------------------------------------------------------------------var MyJpeg: TJpegImage; Image1: TImage;begin Image1:= TImage.Create; MyJpeg:= TJpegImage.Create; Image1.LoadFromFile('TestImage.BMP'); // 读取Bitmap文件 MyJpeg.Assign(Image1.Picture.Bitmap); object MyJpeg.SaveToFile('MyJPEGImage.JPG'); //保存JPEGend;
--------------------------------------------------------------------4.JPEG 转换为BMP函数
procedure Jpg2Bmp(const source,dest:string);var MyJpeg: TJpegImage; bmp: Tbitmap;beginbmp:=tbitmap.Create;MyJpeg:= TJpegImage.Create;try myjpeg.LoadFromFile(source); bmp.Assign(myjpeg); bmp.SaveToFile(dest);finally bmp.free; myjpeg.Free;end;end;
----------------------------------------------------------5.Bmp转换为JPEG文件格式函数----------------------------------------------------------procedure Bmp2Jpg(const source,dest:string;const scale:byte);var MyJpeg: TJpegImage; Image1: TImage;beginImage1:= TImage.Create(application);MyJpeg:= TJpegImage.Create;try Image1.Picture.Bitmap.LoadFromFile(source); MyJpeg.Assign(Image1.Picture.Bitmap); MyJpeg.CompressionQuality:=scale; MyJpeg.Compress; MyJpeg.SaveToFile(dest);finally image1.free; myjpeg.Free;end;end;-----------------------------------------------------------------------