c++ mfc 获取像素值 24位位图全是255

default:intnIndex=*(BYTE*)(m_lpImage+GetPixelOffset(x,y));cColor.rgbRed=m_lpImage[nIn... default:
int nIndex = *(BYTE*)(m_lpImage+GetPixelOffset(x, y));
cColor.rgbRed = m_lpImage[nIndex];
cColor.rgbGreen = m_lpImage[nIndex + 1];
cColor.rgbBlue = m_lpImage[nIndex + 2];
cColor.rgbReserved =0;
break;
以上是RGBQUAD CDib::GetPixel(int x, int y)的代码 1 4 8 16 位都能显示 就是24位显示rgb全是255
展开
 我来答
孤松独海
2011-04-28 · TA获得超过1513个赞
知道大有可为答主
回答量:1220
采纳率:0%
帮助的人:492万
展开全部
RGB最大值是255,16的平方为256 也就是说255 最多能够表示到16位的,DIB图像只能够表示16位模式下,但是可以在更高位模式下显示。
更多追问追答
追问
也就是说dib类对24位图查看rgb处理就是错的  是吧
追答
看看百度百科对DIB的介绍,DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。由于DIB不依赖于具体设备,因此可以用来永久性地保存图象。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式