2010-11-11 59 views
1

我有一些位图。 我知道位图格式是PixelFormat.FormatXXXXXXbppRgb =>但我想动态地计算每个像素的大小。我如何知道每个像素的位图颜色大小是多少?

例如=>如果位图像素格式Format24bppRgb我想要计算的R/G/B的范围为0至255。

所以,我不知道如何获得的信息在Format24bppRgb的情况下,R/G/B位大小为3. 或格式为Format32bppRgb的R/G/B位大小为4.

PS:我不想使用代码

BitmapData bmDateFrame = bitmap.LockBits(....) 
Int32 picPixelBit = bmDateFrame.Stride/bitmap.Width; 
+0

字节大小,而不是位大小,你有他们混在一起。 – leppie 2010-11-11 07:25:00

回答

1

看来PixelFormat VALU的第2个字节(LSB) e表示。

做这样的事情应该工作:

var somepixelformat = ...; 

var colorsizeinbits = (((int)somepixelformat) >> 8) & 0xff; 
相关问题