- 5
- 0
- 约1.64千字
- 约 3页
- 2017-06-08 发布于重庆
- 举报
将RGB值转换为灰度值的简单算法
将RGB值转换为灰度值的简单算法 使场景或精灵以灰度的形式显示,这是一般游戏制作中常常用到的效果,如:战棋游戏中当一个角色被使用过后,通常就会变成灰色,代表本回合已不能行动了;《仙剑》中回忆彩蝶的部分是用整屏的灰色来表现的?(记的不太清楚,太久了^_^);还有很多很多例子…… 将RGB值转换为灰度的过程应该是在程序中实现的(至少我是这么认为的)。其实这是非常简单的,基本原理就是将一个点的RGB值分开来求和,然后除以3,把得到的值再分别付给RGB,用公式表示如下:
R G B 0.3R + 0.6G + 0.1B; //第二版改正后的公式//第一版中的错误公式是 R G B R + G + B / 3;
在实际编程应用中又可分为8位、16位和24位三种情况,下面进行一一介绍: 一、首先说最简单的24位点的转换,24位点的RGB均匀分布,所以分离和合成都较为简单,代码如下:
// 24位转换 int gMask 0x00ff00; //绿色掩码int bMask 0x0000ff; //兰色掩码
int RGB24toGray int sour int r,g,b,t; //临时变量 r sour 16 ; g sour gMask 8; b sour bMask; t r*3+g*6+b /10; //第二版改正的地方 r
原创力文档

文档评论(0)