32位颜色 转换成16位颜色
2014-03-03 22:27
232 查看
向别人学习而来:分享。。
1.颜色值有32位存储和16位存储实现呼唤。
2.原理new Color(97,100,255);这个是32位存储 参数依次是 r、g、b。省略了a,alpha通道的值 argb;
实现:
int32 int32Color(unsigned int r,unsigned int g, unsigned int b)
{
return ((r>>16) | (g>>8) | (b>>0));
}
32位转16位:16位存在是rgb 565这样的对应分配比例:都是取的前几位来实现颜色转化
实现如下:
u16 32ConvertTo16(int32 color)
{
u8 r,g,b;
b = (color>>3) & 0x1f; 取32位颜色b的前五位 0x1f 二进制表示如下 011111
g = (color>>2) & 0x3f;
r = (color>>3) & 0x1f;
return ((r<<11) | (g<<5) | (b<<0));//((r<<11) + (g<<5) + (b<<0));
}
1.颜色值有32位存储和16位存储实现呼唤。
2.原理new Color(97,100,255);这个是32位存储 参数依次是 r、g、b。省略了a,alpha通道的值 argb;
实现:
int32 int32Color(unsigned int r,unsigned int g, unsigned int b)
{
return ((r>>16) | (g>>8) | (b>>0));
}
32位转16位:16位存在是rgb 565这样的对应分配比例:都是取的前几位来实现颜色转化
实现如下:
u16 32ConvertTo16(int32 color)
{
u8 r,g,b;
b = (color>>3) & 0x1f; 取32位颜色b的前五位 0x1f 二进制表示如下 011111
g = (color>>2) & 0x3f;
r = (color>>3) & 0x1f;
return ((r<<11) | (g<<5) | (b<<0));//((r<<11) + (g<<5) + (b<<0));
}
相关文章推荐
- 进程间通信和同步:pipe、FIFO、消息队列、信号量、共享内存、信号
- Oracle 学习之创建表空间,用户,权限
- STM32 串口发不出来数,或全0的问题
- c/c++ char->string
- exists和in的执行效率的区别
- .exe文件运行不了
- 问题与事务跟踪系统jira中的版本管理
- springmvc
- 控制符号的可见性
- [LeetCodeSearch Insert Position
- function方法体中动态递归调用
- AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决
- 【跟我学Spring3】【第四节】 DI 之 DI的配置使用 ——跟我学spring3
- 线性代数的疑惑
- C#:ListView控件如何实现点击列表头进行排序?
- 实习记录9
- 在无序序列中找出最长的连续序列 Longest Consecutive Sequence
- three.js 初探
- 9.选择排序——堆排序
- DHCP服务器的搭建