StrechDraw的问题??(50分)

  • 主题发起人 主题发起人 JackyKen
  • 开始时间 开始时间
J

JackyKen

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在下面的按钮件中实现图像的缩小,思路是这样的:先将图像画在内存中,然后用StrechDraw将其考到Image上

但缩小后图像完全变了样,不知道StrechDraw是不是这样用的,请各位指点一下:

procedure TMDIChildForm.ToolButton2Click(Sender: TObject);
var
mbitmap:TBitmap;
begin
if Image1.Width>500 then
begin
Image1.Width:=Image1.Width-160;
Image1.Height:=Image1.Height-100;
Image1.Picture.Bitmap.Width:=Image1.Width;
Image1.Picture.Bitmap.Height:=Image1.Height; //这一段将image1缩小

mbitmap:=TBitmap.Create;
try
mbitmap.Width:=1600;
mbitmap.Height:=1000;
DrawPicture(mbitmap); //画图程序,在mbitmap上画一幅图
Image1.Picture.Bitmap.Canvas.StretchDraw(rect(0,0,Image1.Picture.Bitmap.Width,Image1.Picture.Bitmap.Height),mbitmap);//考到image上
finally
mbitmap.Free;
mbitmap:=nil;
end;
end;
end;
 
不是矢量图形
StrechDraw本来就会导致失真
 
不只是简单的失真,我画的表格,原来每行大小一样,缩小后每行大小不一样了

请问怎么解决??急啊!!!!!!
 
SetStretchBltMode(Bmp.Canvas.Handle, HalfTone);
stretchblt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height,
backbmp.Canvas.Handle, 0, 0,
backbmp.Width, backbmp.height, srccopy);
 
用huazai的方法解决了,万分感谢。
 

Similar threads

I
回复
0
查看
633
import
I
S
回复
0
查看
607
SUNSTONE的Delphi笔记
S
I
回复
0
查看
609
import
I
I
回复
0
查看
557
import
I
后退
顶部