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 展开
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 展开
1个回答
展开全部
RGB最大值是255,16的平方为256 也就是说255 最多能够表示到16位的,DIB图像只能够表示16位模式下,但是可以在更高位模式下显示。
更多追问追答
追问
也就是说dib类对24位图查看rgb处理就是错的 是吧
追答
看看百度百科对DIB的介绍,DIB的颜色模式与设备无关。例如,一个256色的DIB即可以在真彩色显示模式下使用,也可以在16色模式下使用。256色以下(包括256色)的DIB拥有自己的颜色表,像素的颜色独立于系统调色板。由于DIB不依赖于具体设备,因此可以用来永久性地保存图象。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询