Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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# XDGI格式B8G8R8A8_UNorm的确切含义是什么?_C#_Image_Directx_Hex - Fatal编程技术网

C# XDGI格式B8G8R8A8_UNorm的确切含义是什么?

C# XDGI格式B8G8R8A8_UNorm的确切含义是什么?,c#,image,directx,hex,C#,Image,Directx,Hex,我搞不清楚这种图像格式的含义:directX中的B8G8R8A8_UNorm。这是每个颜色通道8比特吗?这是否意味着,例如,如果您使用的颜色为0xAABBCCFF,则颜色将为: B=AA G=BB R=CC A=DD ,哪一种是灰色的?例如,这与R32G32B32A32_浮点相比如何 比如说。我正在看HxD中的图像,以查看十六进制。头8个字节(在头之后)是: 这是绿色的。但如果我将图片加载到Gimp中,并查看像素,则像素为粉红色(#FFF8B5B5=>ARGB)。因此,甚至没有一个颜色通道是

我搞不清楚这种图像格式的含义:directX中的B8G8R8A8_UNorm。这是每个颜色通道8比特吗?这是否意味着,例如,如果您使用的颜色为0xAABBCCFF,则颜色将为:

  • B=AA
  • G=BB
  • R=CC
  • A=DD
,哪一种是灰色的?例如,这与R32G32B32A32_浮点相比如何

比如说。我正在看HxD中的图像,以查看十六进制。头8个字节(在头之后)是:

这是绿色的。但如果我将图片加载到Gimp中,并查看像素,则像素为粉红色(#FFF8B5B5=>ARGB)。因此,甚至没有一个颜色通道是相同的


这怎么可能?B8G8R8A8U UNorm的确切含义是什么?我怎样才能把它转换成与普通图像处理程序相同的格式呢?(例如,在本例中,R=F8,G=B5,B=B5,A=FF)

不,你看的顺序不对。它说:

8-bit Blue, 8-bit Green, 8-Bit Red, 8-bit Alpha. 
您可以将其反转以获得:

3F 6F 52 FB
^A ^R ^G ^B
在C#中:

这将导致#FF6F52FB,这也不同于Gimp。我假设
UNorm
标志对此进行了微小的调整。也许它稍微减轻了它

它不是全粉红色的。。但是奇怪的粉红色

3F 6F 52 FB
^A ^R ^G ^B
Color c = Color.FromArgb(0x6F, 0x52, 0xFB); // Pink.
                          ^R     ^G    ^B