开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9092|回复: 53
收起左侧

[分享] 汇编版的位图操作源码,无API和其他支持库.支持透明色找图

[复制链接]
结帖率:0% (0/1)
发表于 2014-12-16 15:31:36 | 显示全部楼层 |阅读模式   山西省太原市
汇编版的位图操作源码,纯手写无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, 下载次数: 807)
发表于 2023-2-5 16:43:04 | 显示全部楼层   江苏省苏州市
dddd啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
回复 支持 反对

使用道具 举报

结帖率:0% (0/3)

签到天数: 2 天

发表于 2022-12-23 15:57:51 | 显示全部楼层   四川省乐山市
谢谢楼主分享。
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2022-4-17 15:55:38 | 显示全部楼层   河北省石家庄市
怎么没有找图功能啊
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 7 天

发表于 2021-10-16 16:21:41 | 显示全部楼层   四川省绵阳市
设定指定范围内的背景为白(),此命令在哪里?
回复 支持 反对

使用道具 举报

结帖率:86% (24/28)

签到天数: 12 天

发表于 2020-12-10 16:21:06 | 显示全部楼层   河南省焦作市
拿走学习了
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 3 天

发表于 2020-11-30 15:31:13 | 显示全部楼层   山东省青岛市
牛戈11111111111
回复 支持 反对

使用道具 举报

发表于 2020-2-23 18:16:39 | 显示全部楼层   福建省泉州市
不懂啊,完全懵逼!
回复 支持 反对

使用道具 举报

发表于 2020-2-4 12:03:05 | 显示全部楼层   河北省保定市
回复 支持 反对

使用道具 举报

签到天数: 10 天

发表于 2019-11-19 09:17:01 | 显示全部楼层   广东省广州市
看看汇编版的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表