请问如何等比例resize一张bmp图片?(100分)

  • 主题发起人 主题发起人 meemei
  • 开始时间 开始时间
M

meemei

Unregistered / Unconfirmed
GUEST, unregistred user!
就比如把一张200X100的bmp图片resize成100X50的图片。
 
Image,canvas,抓屏 :) 笨办法,相信有人会用更好的办法的。
对图象处理偶不是很熟
 
想显示还是将图像真的缩放阿,我以前用VC做过
 
当然是真的缩放了,就是我硬盘上有一张200X100的bmp图片,我想用Delphi把它resize成100X50,然后再另存到硬盘上,怎么实现?
 
procedure TForm1.Button1Click(Sender: TObject);
var
b: TBitmap;//原图片
nb: TBitmap;//Resize以后的图片
r: TRect;
begin
b := TBitmap.Create;

if OpenDialog1.Execute then
begin
b.LoadFromFile(OpenDialog1.FileName);
nb := TBitmap.Create;

nb.Height := b.Height div 2; //高度变为原来的一半
nb.Width := b.Width div 2; //宽度变为原来的一半
r.TopLeft := Point(0, 0);
r.BottomRight := Point(nb.Width, nb.Height);

with nb.Canvas do
begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, nb.Width, nb.Height);
StretchDraw(r, TGraphic(b));
end;
if SaveDialog1.Execute then nb.SaveToFile(SaveDialog1.FileName);
nb.Free;
end;
b.Free;
end;
 
接受答案了.
 

Similar threads

D
回复
0
查看
744
DelphiTeacher的专栏
D
D
回复
0
查看
718
DelphiTeacher的专栏
D
D
回复
0
查看
672
DelphiTeacher的专栏
D
后退
顶部