将一个 32 位 RGB 像素颜色值为灰度

写一个函数,将一个 32 位 RGB 像素颜色值为灰度。

RGB转为灰度的公式: grey = 0.3 * red + 0.59 * green + 0.11 * blue;
RGB像素的格式 (左边为最高位,右边是最低位):00000000RRRRRRRRGGGGGGGGBBBBBBBB
函数原型为:
c++:
unsigned int ToGrey(unsigned int rgb);

unsigned int ToGrey(unsigned int rgb)
{
    unsigned int red = (rgb & 0x00ff0000) >> 16;
    unsigned int green = (rgb & 0x0000ff00) >> 8;
    unsigned int blue = rgb & 0x000000ff;
    return (unsigned int)(0.3*red + 0.59*green + 0.11*blue);
}

 

posted on 2015-04-29 15:16  天驱  阅读(412)  评论(0)    收藏  举报

导航