图象缩放问题,希望高手指点!200倾囊相赠 (200分)

  • 主题发起人 主题发起人 amakusa
  • 开始时间 开始时间
A

amakusa

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做图象缩放时用分别了BitBlt,CopyRect() 等函数.在缩放图象时总会出现图象失真,画面上被16色填充,希望高手解答.
在没办法的时候我用了最底端的算法,每个象素的截选,可惜画面充满锯齿.
 
SetStretchBltMode(Handle,HALFTONE);
StretchBlt(....);

这样处理效果会好!
 
可以通过改变图像的格式
 
卷起千堆雪tyn大哥,具体能否给个例子?
 
问题解决!!太感谢啦,不知如何报答,这个问题困扰我很长时间没做这个东西了!
 
在Image1上加载一幅位图,设定Image1.AutoSize :=True;
//下面是放大2倍的例子

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp :TBitmap;
begin
Bmp :=TBitmap.Create;
Bmp.Width :=Image1.Width*2;
Bmp.Height :=Image1.Height*2;
SetStretchBltMode(Bmp.Canvas.Handle,HalfTone);
StretchBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,
Image1.Canvas.Handle,0,0,Image1.Width,Image1.Height,SRCCOPY);
Image1.Picture.Bitmap.Assign(Bmp);
Bmp.Free;
end;
 
请教:卷起千堆雪tyn
如何把100*80的jpg改变成160*100的图片呢?
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
633
import
I
后退
顶部