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

如何知道每个像素的位图颜色大小?

  •  1
  • Yanshof  · 技术社区  · 14 年前

    我有一些位图。 我知道位图格式是PixelFaltual.FrUATXXXXXBPPRGB=& GT;但是我要动态地计算每个像素的大小。

    例如=>如果位图像素格式为format24bpprgb,我想计算r/g/b范围在0到255之间。

    所以,我不知道如何获得信息,在格式化24bpprgb的情况下,r/g/b位大小是3。 或者格式为32bpprgb,r/g/b位大小为4。

    BitmapData bmDateFrame = bitmap.LockBits(....)
    Int32 picPixelBit = bmDateFrame.Stride / bitmap.Width;
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   leppie    14 年前

    似乎是 PixelFormat 值表示。

    这样做应该有效:

    var somepixelformat = ...;
    
    var colorsizeinbits =  (((int)somepixelformat) >> 8) & 0xff;