1,183
社区成员
发帖
与我相关
我的任务
分享
{具体的尺寸计算,请自己根据BMP.Width和Height换算}
var
FBmp, FBmp2: TBitmap;
procedure TForm1.Button1Click(Sender: TObject);
begin
FBmp.LoadFromFile('c:\test.bmp');{导入一个BMP图片}
//Image1.Picture.Bitmap.Assign(FBmp);{这只是看效果,不必需}
//Image1.AutoSize := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FBmp := TBitmap.Create;
FBmp2 := TBitmap.Create;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FBmp2.Width := 30;{这里只是演示另存为宽30像素、高50像素。具体按比率另存的话,请自行写换算公式}
FBmp2.Height := 50;
FBmp2.Canvas.CopyRect(FBmp2.Canvas.ClipRect, FBmp.Canvas, FBmp.Canvas.ClipRect);
//Image1.Picture.Bitmap.Assign(FBmp2);{这句只是看效果}
FBmp2.SaveToFile('c:\result.bmp');{另存为}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FBmp.Free;
FBmp2.Free;
end;
procedure zoomout(x,y:integer);
var
bmp,backbmp:Tbitmap;
begin
backbmp.Assign(image1.Picture.Graphic);
try
begin
bmp.Width:=x;
bmp.Height:=y;
SetStretchBltMode(bmp.Canvas.Handle,HALFTONE);
StretchBlt(Bmp.Canvas.Handle,0,0,x,y,
backBmp.Canvas.Handle,0,0,backBmp.Width,backBmp.Height,SRCCOPY);
image1.Picture.Graphic.Assign(bmp);
image1.savetofile('1.jpg')
end;
except
begin
showmessage('程序出错了);
halt(0);
end;
end;
end;