在内存中,一行位图通常以bbggrr00bbggrr00bbggrr00bbggrr00格式存储。。。这样每个像素将正好占用4个字节,即32位。这简化了很多事情,并且可以加速计算和图像处理。但是,如果位图将红色、绿色和蓝色强度指定为字节(在0..255范围内),并且不包含alpha通道,则每个像素只需要三个字节。所以每个像素有第四个未使用的字节。在像素结构中,它必须被命名为某物。假设可用的成员被调用
rgbRed
,
rgbGreen
,和
rgbBlue
,
rgbReserved
感觉很好。也许 吧
rgbUnused
可能更合适,但在Win32中有一个传统,将(当前)未使用的参数命名为“Reserved”,如“Reserved for future use”。实际上,如果你的应用程序使用的是包含alpha通道的透明位图,那么每个像素的格式都可能是BBGGRRAA,因此你可以使用
rgbReserved公司
作为
rgbAlpha
.
你问题的后一部分无法按现状回答。我不知道你的代码为什么不工作。可能是像素强度溢出了?也许有什么愚蠢的虫子?
最后一点:如果您想知道Win32结构的成员是什么,您可以随时查阅
the official documentation
.