首页 > 其他 > 详细

将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

时间:2015-10-21 15:21:22      阅读:1081      评论:0      收藏:0      [点我收藏+]

今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下RGB16位的增强色,写了这个函数:

        public static int RGB16(int argb)
        {
            uint t = (uint)argb;//转uint便于移位
            //argb共32位,AARRGGBB,RGB24只有后24位
            //int r = t << 8 >> 24; //000000RR
            //int g = t << 16 >> 24;//000000GG
            //int b = t << 24 >> 24; //000000BB
            //return (r >> 3 << 3 << 16) + (g >> 2 << 2 << 8) + (b >> 3 << 3); //分别移除RGB的后3、2、3位,使成为5、6、5位的16位色
            //return (r >> 3 << 19) | (g >> 2 << 10) | (b >> 3 << 3);
            return (int)((t << 8 >> 27 << 19) | (t << 16 >> 26 << 10) | (t << 24 >> 27 << 3)); //最终高效算法
        }

将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

原文:http://www.cnblogs.com/hz-blog/p/4897790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!