|
发表于 2003-10-27 21:25:00
|
显示全部楼层
Re:16bit色彩下如何取得RGB色彩值
我不知道具体的运算数值,就只能根据代码来分析一下。
首先:
s_red= (sPtr[pos] & Rmask) >> 11;
s_green=(sPtr[pos] & Gmask) << 5 >> 10;
s_blue= (sPtr[pos] & Bmask) << 11 >> 11;
这里的s_red,s_green,s_blue三个变量应该就是用来保存RGB三基色值,
接下来:
sPtr[pos]=s_red | s_green | s_blue;
这里直接将这三基色进行与运算,假设s_res,s_green_s_blue为(255,255,255),
那么就变成了 sPtr[pos] = 255 | 255 | 255;
我们这样看吧:
s_red = 00000000000111111; // 假设为255
s_green = 00000000000111111; // 假设为255
s_blue = 00000000000111111; // 假设为255
这样“与”出来会是什么样的结果?
我们是不是应该把s_red的"111111"部分移到前面?把s_green移到中间?
|
|