C# XDGI格式B8G8R8A8_UNorm的确切含义是什么?
我搞不清楚这种图像格式的含义:directX中的B8G8R8A8_UNorm。这是每个颜色通道8比特吗?这是否意味着,例如,如果您使用的颜色为0xAABBCCFF,则颜色将为: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)。因此,甚至没有一个颜色通道是
- B=AA
- G=BB
- R=CC
- A=DD
这怎么可能?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