首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

毛糙的灰度计算

2012-07-28 
粗糙的灰度计算??? 从BMP中读取RGB值,计算出Ray来。然后根据需要,取出所需要的灰度。1. 从BMP中读取RGB???

粗糙的灰度计算

??? 从BMP中读取RGB值,计算出Ray来。然后根据需要,取出所需要的灰度。

1. 从BMP中读取RGB

??? 参见《获取位图RGB值的思路》

2. 计算Ray

??? 我需要16灰阶的,所以,Ray使用一个字节(unsigned char)就足够啦。

??? 转换方法:

??? a. 单色位图

???????? ray =G,

?????? 其中,G是Green的颜色值。

??? b. 4位、8位、16位、24位位图

??????? ray = (R*30+G*59+B*11)/100

?????? 其中,RGB分别表示red、Green、Blue的颜色色度值。

?

3. 取出灰度值

???? 默认情况,灰阶是256.如果需要其他灰阶,我的方法是:移位(除法)。

???? 我需要16级灰阶的数据。由于屏幕是8字节每像素,且高4位有效,需要ray的高4位,所以,直接将ray存入map中的对应位置即可。

????? 其中,map是指framebuffer的芯片显示内存映射到内存中的位置。

?

????? 以上,仅个人学习总结,不作为标准,仅供参考!

?

热点排行