myBitmap.RawFormat与任何已知的ImageFormat都有所不同
本文关键字:ImageFormat 有所不同 RawFormat 任何 myBitmap | 更新日期: 2023-09-27 18:04:26
我正在使用GDI+,我创建了一个新的位图,像这样:
var bmp = new Bitmap(width, height);
现在,当我观察它的RawFormat。Guid我看到它不同于所有预定义的imageformat(虽然我希望它是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,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatBMP, 0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatEMF, 0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatWMF, 0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatPNG, 0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
"记忆BMP",相当合适。是的,微软经常手工处理guid。淘气。