And*_*and 11
在内存中,位图的一行通常以BBGGRR00BBGGRR00BBGGRR00格式存储...因此每个像素将占用恰好四个字节或32位.这简化了很多事情,并且可以加速计算和图像处理.但如果位图将红色,绿色和蓝色强度指定为字节(在0..255范围内),并且不包含alpha通道,则每个像素只需要三个字节.因此每个像素有一个未使用的字节.在像素结构中,它必须被命名为某种东西.鉴于可用的成员被称为rgbRed,rgbGreen和rgbBlue,rgbReserved感觉相当好.也许rgbUnused甚至更合适,但在Win32中有一个传统,即命名(当前)未使用的参数"保留",如"保留供将来使用".实际上,如果您的应用程序使用包含Alpha通道的透明位图,则每个像素可能是BBGGRRAA形式,因此您可以使用rgbReservedas rgbAlpha.
你问题的后半部分无法回答.我不知道为什么你的代码不起作用.也许像素强度溢出?也许某处有一些愚蠢的虫子?
最后要注意:如果您想知道Win32结构的成员是什么,您可以随时查阅官方文档.