粗糙的灰度计算

    从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的芯片显示内存映射到内存中的位置。

 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值