代码之家  ›  专栏  ›  技术社区  ›  Javid

什么是rgbReserved?

  •  4
  • Javid  · 技术社区  · 14 年前

    你好 我想知道这是什么 rgbReserved 在里面 RGBQuadArray 为什么当我改变RGB颜色时,图像上会显示一些难看的线条?是否与 rgbReserved公司 ?

    1 回复  |  直到 14 年前
        1
  •  11
  •   Andreas Rejbrand    14 年前

    在内存中,一行位图通常以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 .