C# 如何知道每个像素的位图颜色大小?
我有一些位图。 我知道位图格式是PixelFormat.FormatxxxxxBPRGB=>但我想动态计算每个像素的大小 例如=>如果位图像素格式为24bpprgb,我想计算R/G/B范围在0到255之间 因此,我不知道如何获得信息,在格式化24bpprgb的情况下,R/G/B位大小是3。 或者格式为32bpprgb,R/G/B位大小为4 我不想使用代码C# 如何知道每个像素的位图颜色大小?,c#,.net,C#,.net,我有一些位图。 我知道位图格式是PixelFormat.FormatxxxxxBPRGB=>但我想动态计算每个像素的大小 例如=>如果位图像素格式为24bpprgb,我想计算R/G/B范围在0到255之间 因此,我不知道如何获得信息,在格式化24bpprgb的情况下,R/G/B位大小是3。 或者格式为32bpprgb,R/G/B位大小为4 我不想使用代码 BitmapData bmDateFrame = bitmap.LockBits(....) Int32 picPixelBit = bmDa
BitmapData bmDateFrame = bitmap.LockBits(....)
Int32 picPixelBit = bmDateFrame.Stride / bitmap.Width;
似乎PixelFormat
值的第二个字节(LSB)表明了这一点
这样做应该会奏效:
var somepixelformat = ...;
var colorsizeinbits = (((int)somepixelformat) >> 8) & 0xff;
似乎PixelFormat
值的第二个字节(LSB)表明了这一点
这样做应该会奏效:
var somepixelformat = ...;
var colorsizeinbits = (((int)somepixelformat) >> 8) & 0xff;
字节大小,不是位大小,你把它们弄混了。字节大小,不是位大小,你把它们弄混了。