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

本文介绍了一种高效的真彩色转增强色(16位)的算法实现。通过位操作,将24位真彩色图像的颜色信息适配到16位色深中,适用于颜色匹配等应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://www.cnblogs.com/hz-blog/p/4897790.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值