我怎么知道每个像素的位图颜色大小是多少?

时间:2010-11-11 07:17:18

标签: c# .net

我有一些位图。 我知道位图格式是PixelFormat.FormatXXXXXXbppRgb =>但我想动态计算每个像素的大小。

例如=>如果位图像素格式为Format24bppRgb,我想计算R / G / B范围在0到255之间。

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

P.S:我不想使用代码

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

1 个答案:

答案 0 :(得分:1)

似乎PixelFormat值的第二个字节(LSB)表示。

做这样的事情应该有效:

var somepixelformat = ...;

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