|
汇编版的位图操作源码,纯手写无API和其他支持库.支持模糊透明色找图,二值化图片,黑白图片,找汇编爱好者共同研究
最初写找图代码时,是用易语言的代码所写,后来由于运算速度过慢,
于是便下定决心用汇编写,从汇编入手,到写成代码,写这东西老费劲了,当然,带来的效果,比原版易语言写的速度那是快了上百倍,再后来随着对汇编的一些熟练,发现之前这些汇编代码有很多地方可以优化,比如:尽量用寄存器来保存数据,少用内存数据,尽量用xor,shr,shl,lea等命令来处理寄存器之前的赋值或者运算.
然后于是又继续修改,但是由于修改起来很多参数很难分辨,后来基本又重新重写,速度比之前的提升几倍,这些花了我近三个月时间包括开发出支持透明色找图的功能,但是,由于找图经常用到一些图像灰度,二值化,等功能.干脆就一不做,二不休
于是又把这些功能重新用汇编写了一次,又花了我近半年的时间,这些命令包括"设定指定范围内的背景为白",也就是找图时,过滤一些颜色,"是否全灰"用来判断一个图片是否为黑白色,"取RGB颜色值"可以快速取出位图指定点的颜色值,这些功能现在基本上位图方面我所用到的命令,已经全部转成了汇编.处理图片数据,绝对已经达到极限,通过对比大漠的,tc平台上,按键的找图功能,都远远超出了他们的速度.到底超出多少,我测试了下,我的找图功能,我在CPU配置为E7400的电脑上 从1920*1080的大图上,找一张48*48的小图,在x=1631,y=982的地方,用时31毫秒,再找一张48*48,位置在x=384,y=122的图用时15毫秒.当然这15毫秒是系统的误差.因为懂编程的高手应该知道系统的时钟周期是在15毫秒左右,如果找的小图再小一点的花,基本时间都是在100毫秒内.同比之下,上面所说的那些找图功能,他们的绝对是上了100毫秒的.
这些代码是本人用了挺长时间才写出来的
经过一番思考,决定开源,高手莫笑话!
[开源]汇编版位图操作.zip
(4.53 KB, 下载次数: 829)
|
|