图片保存问题(50分)

  • 主题发起人 主题发起人 tianzhegs
  • 开始时间 开始时间
T

tianzhegs

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把image中的图片保存在硬盘上,并保存成640*480的bmp文件
 
用流啊!savetofile,是否640*480就不知道了,自己试试吧!
 
我会保存图片,但不会保存成640*480的
 
先将图片变换为用640*480用StretchDraw函数。再用savepicturedialg写入文件
 
给你一个我以前做的例子
procedure TForm1.LoadFile1Click(Sender: TObject);
var
MyJpeg: TJpegImage;
MyBmp: Tbitmap;
begin
if FOpen.Execute then
begin
FOpen.InitialDir := ExtractFilePath(FOpen.FileName);
Bmp.Free;
Buf.Free;
MyBmp:=tbitmap.Create;
MyJpeg:= TJpegImage.Create;
MyJpeg.LoadFromFile(FOpen.FileName);
MyBmp.Assign(myjpeg);
MyBmp.SaveToFile('c:/1.bmp');
Bmp := TFastBMP.CreateFromFile('c:/1.bmp');
Buf := TFastBMP.CreateCopy(Form1.Bmp);
Caption := ExtractFileName(FOpen.FileName);
Refresh;
end;
 
简单的写了个,不是很恰当,但能实现你所要求的功能。
用Canvas.CopyRect把Image1的图像复制到Image2,把Image2保存到文件。
Image2.Height和width设置成640×480就可以了
procedure TForm1.Button1Click(Sender: TObject);
var
DestRect:TRect;
SourceRect:TRect;
begin
Canvas.CopyMode:=cmSrcCopy;
SourceRect:=Image1.ClientRect;
DestRect:=Image2.ClientRect;
Image2.Canvas.CopyRect(DestRect, Image1.Canvas, SourceRect);
if savedialog1.Execute then
Image2.Picture.SaveToFile(savedialog1.FileName);
end;
 
FlashDelphi,说得对
 
多人接受答案了。
 
后退
顶部