脚本开发,脚本学习,辅助软件,各种工具软件

访问密码统一为:3158

查看: 1364|回复: 0

位图结构剖析:无API无绘图-直取颜色及信息

[复制链接]

67

主题

68

帖子

355

积分

孩提

Rank: 2

积分
355
发表于 2020-5-17 12:16:22 | 显示全部楼层 |阅读模式

由来:常规获取指定图像的方法一般是将其绘制到组件(如画板、图片框等),再通过坐标获取,效率一些的方法还有将其创建为内存位图从内存中获取。但是很多时候,我们将图像加入到程序的资源中(即一个字节集),绘制到组件可能要多出额外冗余的组件,绘制到内存则要先获取该图像资源的句柄(当然论坛里有前辈已经给出获取资源字节集图像句柄的方法),再创建内存DC并绘制,然后通过GetPixel 等获取,这样效率是没问题的,但貌似即麻烦也多此一举了。所以就想到,要是即不做组件装载位图,也不进行内存绘制,是否能取到指定点的颜色呢?答案是肯定的,只要我们熟悉位图结构便可以做到。

  

前言:如上所述,这个代码的演示更多的是供大家学习位图结构原理,而不是要探讨哪种颜色获取方式更为效率等问题,本代码仅使用 字节集操作、算术运算与位运算完成,无其他函数!

本代码仅支持非压缩位图,1、4、8、16、24、32位均支持,其他图片格式不支持,但这仅仅是个抛砖引玉的例子,只要你熟悉了其他图片的格式,完全可以扩展更多支持的类型!

还需要说明的是:本代码参考了诸多位图结构技术文章,但转换时难免有遗漏之处,甚至笔误导致出错,所以欢迎大家测试并多提意见,共同完善!!!

  

例子预览:

  

下载链接:https://t00y.com/file/20110282-443791391






上一篇:Unrar调用模块 - RAR解压、测试、查看全功能版
下一篇:eWOW64Ext v1.1 - 加载任意 32/64 模块|64 位汇编及进程读写
3Q4T网,编程学习交流基地。
回复

使用道具 举报

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

本版积分规则

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