在16位的设备环境下,getpixel得到的颜色值怎么比较?

livedeal 2006-11-24 10:49:24
比如,用RGB(128,0,0)画的一个点,在16位下,用getpixel得到的会是132,要是我用getpixel得到的颜色想和我的一个RGB数组比较的话,这样就得不到正确的值了,有什么办法吗~???16位还分555和565的,
...全文
213 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CharlesPrince 2007-01-06
  • 打赏
  • 举报
回复
16位色基色分配方式在WINDOWS下为5R6G5B
把它们相应取出,再用RGB宏合成。如上:掩码是:0xF800、0x07E0、0x001F
aj3423 2007-01-06
  • 打赏
  • 举报
回复
biBitCount=16 表示位图最多有216种颜色。每个色素用16位(2个字节)表示。这种格式叫作高彩色,或叫增强型16位色,或64K色。它的情况比较复杂,当biCompression成员的值是BI_RGB时,它没有调色板。16位中,最低的5位表示蓝色分量,中间的5位表示绿色分量,高的5位表示红色分量,一共占用了15位,最高的一位保留,设为0。这种格式也被称作555 16位位图。如果biCompression成员的值是BI_BITFIELDS,那么情况就复杂了,首先是原来调色板的位置被三个DWORD变量占据,称为红、绿、蓝掩码。分别用于描述红、绿、蓝分量在16位中所占的位置。在Windows 95(或98)中,系统可接受两种格式的位域:555和565,在555格式下,红、绿、蓝的掩码分别是:0x7C00、0x03E0、0x001F,而在565格式下,它们则分别为:0xF800、0x07E0、0x001F。你在读取一个像素之后,可以分别用掩码“与”上像素值,从而提取出想要的颜色分量

参考 http://blog.csdn.net/dishening7/archive/2006/09/02/1161366.aspx
ReverseEngineering 2007-01-05
  • 打赏
  • 举报
回复
我来了,冒个泡泡
livedeal 2006-11-27
  • 打赏
  • 举报
回复
..................
livedeal 2006-11-24
  • 打赏
  • 举报
回复
UP下,没有人来吗~?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧