请教如何把bitmap图片缩放入Image中(50分)

  • 主题发起人 主题发起人 铁锈
  • 开始时间 开始时间

铁锈

Unregistered / Unconfirmed
GUEST, unregistred user!
var newbmp:Tbitmap;
begin
......
//编辑newbmp图片

// ???怎么放入image1中?
end;

我用的canvas.draw,不过显示出来是1:1的图,因为newbmp的width大于image的
请教用那个函数或者方法,请给出代码把。
 
image1.Stretch := true;
image1.Picture.Bitmap := newbmp;

嘿嘿
 
StretchDraw(),看看TCanvas的帮助文件,里面介绍的比较详细。
procedure StretchDraw(const Rect: TRect; Graphic: TGraphic);
它里面自带了一个例子,你仔细看看。
 
procedure TMainForm.ZoomoutClick(Sender: TObject);
var
bmp:TBITMAP;
begin

begin
bmp:=Tbitmap.Create;
jp1:=Tjpegimage.Create;
//childForm.image1.AutoSize:=true;
bmp.Width:=trunc(0.9*childForm.image1.width);
bmp.Height:=trunc(0.9*childForm.image1.Height);
SetStretchBltMode(Bmp.Canvas.Handle,HalfTone);
stretchblt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height,
childForm.image1.Picture.Bitmap.Canvas.Handle,0,0,childForm.image1.Width,childForm.image1.height,srccopy);
childForm.image1.Picture.Bitmap.Assign(bmp);
jp1.Assign(bmp);
bmpnumber:=bmpnumber+1;
jp1.SaveToFile('c:/temp/'+inttostr(bmpnumber)+'.jpg');
bmp.Free;
jp1.Free;

end;


end;
 
试试下面的代码
var
bmp: TBitmap;
begin
Image1.Stretch := True;
bmp := TBitmap.Create;
try
bmp.LoadFromFile('C:/Windows/cibab.bmp');
with Image1 do
begin
Picture.Bitmap.Handle := bmp.Handle;
Update;
Refresh;
end;
finally
bmp.Free;
end;
 
多人接受答案了。
 
后退
顶部