Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道每个像素的位图颜色大小?_C#_.net - Fatal编程技术网

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

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

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

例如=>如果位图像素格式为24bpprgb,我想计算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;
似乎
PixelFormat
值的第二个字节(LSB)表明了这一点

这样做应该会奏效:

var somepixelformat = ...;

var colorsizeinbits =  (((int)somepixelformat) >> 8) & 0xff;
似乎
PixelFormat
值的第二个字节(LSB)表明了这一点

这样做应该会奏效:

var somepixelformat = ...;

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

字节大小,不是位大小,你把它们弄混了。字节大小,不是位大小,你把它们弄混了。