求比Stretchblt方法更快的缩放算法,有的别藏着呀! 我用Stretchblt方法把一张320*240的BMP图片放大到800*600用了>100毫秒的时间,大家有没有好的算法把这个缩放的时间控制在<15毫秒以上呀?(我的本本是CPU1.2,内存是256) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var i: integer; bmp1, bmp2: tbitmap;begin bmp1 := tbitmap.Create; bmp2 := tbitmap.Create; bmp1.LoadFromFile('d:\1.bmp'); //320 X 240 24位 bmp2.Width := 800; bmp2.Height := 600; i := gettickcount; bmp2.Canvas.StretchDraw(bmp2.Canvas.ClipRect, bmp1); showmessage(inttostr(gettickcount-i)); bmp2.SaveToFile('d:\2.bmp'); bmp1.Free; bmp2.Free;end;不慢啊,基本上显示0,偶尔显示10,看看TBitmap的Draw方法吧,可能有帮助 设置 Bitmap的PixelFormat为pf24bit看看。或者直接调用API很快啊。我机器比较慢,但直接调用StretchBlt函数很快的。基本上感觉不到:Bmp2.LoadFromFile('C:\Test.bmp');Bmp1.Width:= 100;Bmp1.Height:= 80;StretchBlt(Bmp1.Canvas.Handle, 0, 0, 100, 80, Bmp2.Canvas.Handle, 0, 0, Bmp2.Width, Bmp2.Heihgt, SRCCOPY);Bmp2.SaveToFile('d:\Test.bmp'); StretchDraw 方法就是StretchBlt的封装! DrawDib视频函数直接对显存操作,速度快 这应该是API啊,再快肯定是更好的算法了. 去盒子下 FastLib 控件,里面有更快的放縮方法 去下个FastLib控件 看看 。。 关于如何直接读取路径,各位帮帮忙 急,请教一个IdTCPclient的问题 如何实现文件上传的断点续传功能? 经典程序 ACCESS表里有25个字段,想加一个,报“定义了过多字段”,怎么回事? 简单的问题 有谁知道RootNode的函数原型??? 高价收购控件,价钱可以商量. 怎么调试MTS程序呢? 在Delphi中,关于OLE的小问题!!!谁先解答,给高分,急!急!急!!! DELPHI的那个设置属性的控件名叫什么 讨论弹出式菜单中加入编辑框的可能性
i: integer;
bmp1, bmp2: tbitmap;
begin
bmp1 := tbitmap.Create;
bmp2 := tbitmap.Create;
bmp1.LoadFromFile('d:\1.bmp'); //320 X 240 24位
bmp2.Width := 800;
bmp2.Height := 600; i := gettickcount;
bmp2.Canvas.StretchDraw(bmp2.Canvas.ClipRect, bmp1);
showmessage(inttostr(gettickcount-i)); bmp2.SaveToFile('d:\2.bmp');
bmp1.Free;
bmp2.Free;
end;不慢啊,基本上显示0,偶尔显示10,看看TBitmap的Draw方法吧,可能有帮助
Bmp2.LoadFromFile('C:\Test.bmp');Bmp1.Width:= 100;
Bmp1.Height:= 80;StretchBlt(Bmp1.Canvas.Handle, 0, 0, 100, 80,
Bmp2.Canvas.Handle, 0, 0, Bmp2.Width, Bmp2.Heihgt, SRCCOPY);Bmp2.SaveToFile('d:\Test.bmp');