C# · 12月 26, 2021

c# – myBitmap.RawFormat是不同于任何已知的ImageFormat?

我正在使用GDI,我创建了一个新的位图,如下所示: var bmp = new Bitmap(width,height);

现在当我观察它的RawFormat.Guid我看到它是不同于所有预定义的ImageFormats(而我期望它是JPEG).

ImageFormat.Jpeg.Guid {b96b3cae-0728-11d3-9d7b-0000f81ef32e}format.Guid {b96b3caa-0728-11d3-9d7b-0000f81ef32e}

有趣的部分是,你可以看到它们是相同的,除了一个使我更困惑的角色.

任何想法为什么?哪些代码部分决定了我创建的位图的RawFormat是什么?我们如何确保它是一个有效的ImageFormat?

谢谢.

解决方法 从Windows SDK,< gdiplusimaging.h>头文件: DEFINE_GUID(ImageFormatUndefined,0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0xf8,0x1e,0xf3,0x2e);DEFINE_GUID(ImageFormatMemoryBMP,0xb96b3caa,0x2e);DEFINE_GUID(ImageFormatBMP,0xb96b3cab,0x2e);DEFINE_GUID(ImageFormatEMF,0xb96b3cac,0x2e);DEFINE_GUID(ImageFormatWMF,0xb96b3cad,0x2e);DEFINE_GUID(ImageFormatJPEG,0xb96b3cae,0x2e);DEFINE_GUID(ImageFormatPNG,0xb96b3caf,0x2e);DEFINE_GUID(ImageFormatGIF,0xb96b3cb0,0x2e);DEFINE_GUID(ImageFormatTIFF,0xb96b3cb1,0x2e);DEFINE_GUID(ImageFormatEXIF,0xb96b3cb2,0x2e);DEFINE_GUID(ImageFormatIcon,0xb96b3cb5,0x2e);

“记忆BMP”,相当合适.是的,微软经常用手指弄GUID.淘气.