关于GraphicEx及图像缩放速度的问题,诚请yuki2003及各位高手解答,分不够可另加(30分)

  • 主题发起人 主题发起人 billjohn1999
  • 开始时间 开始时间
B

billjohn1999

Unregistered / Unconfirmed
GUEST, unregistred user!
关于GraphicEx及图像缩放速度的问题,诚请yuki2003及各位高手解答,分不够可另加:
yuki2003,你好,寄给我的GraphicEx已收到,非常感谢!
下面是我试用GraphicEx后的问题:
GraphicEx的Stretch过程是处理pf24bit位的缩放的,
也可以对pf8bit或pf1bit的图像进行缩放,
但由于我的图像太大(3000*3000,pf1bit)以至于缩放速度太慢(大于15秒),
无法满足要求。
(我的编程需要是3000*3000,pf1bit位图缩小50%的速度在2秒内完成)
由于我只需要pf8bit或pf1bit的,所以我想把GraphicEx处理的位图格式
改为pf8bit来提高速度,当我把GraphicEx.pas文件中的Stretch、DoStretch过程
中的pf24bit改为pf8bit时,程序运行错误。
不知如何改动GraphicEx才能最大程度地提高缩放速度?
恳请yuki2003及各位高手解答,若没有GraphicEx我可以寄给你。
我也试过图像切割然后多线程缩放处理,效果虽有所改善(8至13秒),
但仍远远没有达到需要。

 
你的屏幕分辨率有多大?

为什么不只缩放可见的部分呢?
 
一定要用GraphicEx吗?其他的方法不行?
 
to cqbaobao, 只缩放可见的部分?我怎么判断可见部分?

to huazai:不用GraphicEx还有什么别的方法么?
我要加插值的啊,GraphicEx里有Bell,triangle,spline等好算法,
我自己又不会编这些,就是编了,也不一定缩放的速度很快啊。


 
出去玩了两天,现在才看到,抱歉了。
GraphicEx的Stretch反复调用了ApplyContributors过程所以很慢。
我生成4320/6720的图片要30.164秒呢。
这个问题我解决不了的。
如果是要保存生成的图片就等一会吧。如果是要查看一部分就先选一块区域
再生成图片吧,

我把以来的那个程序加了用鼠标选区域的功能,发过去给你吧。

如果你会用线程的话,把Stretch过程跟ApplyContributors过程中的
for....do 改为线程,不知道会不会好一些。
............
过了两个小时... :)
现在好了,
我用Graphics32中的Transformsc肯定能满足你的要求。
我把代码发给你。
我直接用Graphics32的,Transformsc还没独立取出来,以后再取吧!
不要显示过程将会........

显示4488/6712的图片3.455秒
 
错了,不是Transformsc,而是StretchTransfer[:(!]
 
需要插值吗?如果不需要时很快的
 
yuki2003,你好。非常感谢你的帮助!
由于太忙,到现在才试用了你寄给我的程序。
速度是很快,不过好象是相对地牺牲了画质,
图像质量由sfNearest到sfLinear、sfLinear2、sfSpline逐渐变高,
速度也逐渐变慢。不过那对我来说不太重要,只要速度快就行了。
真对不起,还想麻烦你一下,你能不能把它剥离出来?
如何改变Gr32中图像的R、G、B值?(我需要改变图象为透明,但是图象太大时,
不能变为透明,只好来直接改缩小程序的RGB值,让图象的白色部分与背景色相同)

另外,很想和你成为朋友,请问你能不能告诉我你的联系方式(电话or手机)
(请发到我的信箱)?

我另开一贴,200分,请你到那里去回贴,谢谢。
 

Similar threads

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