VC_16位色和24位色转换宏
来源:互联网 发布:哈尔滨黑马程序员地址 编辑:程序博客网 时间:2024/06/10 17:08
16位色和24位色转换宏
#include <assert.h>
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef unsigned short WORD;
// 24位色和16位色转换宏
// by cheungmine
#define RGB888toRGB565(r,g,b) ((WORD)(((WORD(r)<<8)&0xF800)|((WORD(g)<<3)&0x7E0)|((WORD(b) >> 3))))
#define RGBtoRGB565(rgb) ((WORD)(((((WORD)((rgb)>>3))&(0x1F))<<11)|((((WORD)((rgb)>>10))&(0x3F))<<5)|(((WORD)((rgb)>>19))&(0x1F))))
#define RGB888toRGB555(r,g,b) ((WORD)(((WORD(r)<<7)&0x7C00)|((WORD(g)<<2)&0x3E0)|((WORD(b)>>3))))
#define RGBtoRGB555(rgb) ((WORD)(((((WORD)((rgb)>>3))&(0x1F))<<10)|((((WORD)((rgb)>>11))&(0x1F))<<5)|(((WORD)((rgb)>>19))&(0x1F))))
#define RGB555toRGB(rgb555) ((DWORD)(((BYTE)(((rgb555)>>7)&0xF8)|((WORD)((BYTE)(((rgb555)>>2)&0xF8))<<8))|(((DWORD)(BYTE)(((rgb555)<<3)&0xF8))<<16)))
#define RGB565toRGB(rgb565) ((DWORD)(((BYTE)((((rgb565)&0xF800)>>11)<<3)|((WORD)((BYTE)((((rgb565)&0x07E0)>>5)<<2))<<8))|(((DWORD)(BYTE)(((rgb565)&0x001F)<<3))<<16)))
int main(int argc, char* argv[])
{
COLORREF rgb = RGB(193,192,191);
WORD w = RGB888toRGB565(193, 192, 191);
WORD w2 = RGBtoRGB565(rgb);
assert(w==w2);
COLORREF rgb1 = RGB565toRGB(w);
WORD w5 = RGBtoRGB565(rgb1);
assert(w5==w2);
WORD w3 = RGB888toRGB555(193, 192, 191);
WORD w4 = RGBtoRGB555(rgb);
assert(w3==w4);
COLORREF clr = RGB555toRGB(w4);
w4 = RGBtoRGB555(clr);
return 0;
}
- VC_16位色和24位色转换宏
- VC_16位色和24位色转换宏
- 16位色和24位色转换宏
- 16位色和24位色转换宏
- 8位位图和24位位图的相互转换
- 32位色和16位色
- 32位色与24位色
- 32位色与24位色
- 32位色与24位色
- 16位增强色RGB转换为24/32位真色彩
- YUV转换为RGB565(16位色)
- 位转换
- 计算机颜色格式( 8位 16位 24位 32位色)
- 24位真彩色位图和8位灰度位图相互转换(C语言实现)
- 十八位和十五位身份证互相转换
- 串并转换和16位转8位
- 图像位数转换(16位到24位与24位到16位)
- 位操作和宏
- Win10/UWP开发—使用Cortana语音与App后台Service交互
- Windows2003安装Apache+php+mysql图文教程
- 技术杂谈(1)——Vmware网络连接模式简介
- keyChain保存uuid实现唯一标识
- 常用linux命令备忘
- VC_16位色和24位色转换宏
- the comments of python
- MyEclipse开发习惯
- Oracle SQL优化 总结(学习)
- adb常见问题--* daemon not running. starting it now*
- 关于广告投放 RTB 模式(实时竞价)的十个问题
- Adapter内的onItemClick监听器四个arg参数
- 对文本框内容进行实时判断
- request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1