zoukankan      html  css  js  c++  java
  • 将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

    今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下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)); //最终高效算法
            }

  • 相关阅读:
    杨辉三角
    手动实现md5加密
    戳气球
    重构字符串
    四数相加 II
    背包问题 II
    组合总和 IV
    背包问题 V
    背包问题
    Win 10安装Python及环境变量配置
  • 原文地址:https://www.cnblogs.com/hz-blog/p/4897790.html
Copyright © 2011-2022 走看看