【问题标题】:myBitmap.RawFormat is something different than any known ImageFormat?myBitmap.RawFormat 与任何已知的 ImageFormat 不同吗?
【发布时间】:2011-10-20 03:09:45
【问题描述】:

我正在使用 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?

谢谢。

【问题讨论】:

    标签: c# graphics bitmap gdi+


    【解决方案1】:

    来自 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。淘气。

    【讨论】:

    • 哇!真的?!为他们创建新的Guid有这么难吗?! :P
    • 嗯,当然不是。不过在调试时非常好。唯一的问题是现在每个人都会对图像格式 b3 和 b4 感到好奇。
    • @Hans - (老 Q,但仍然) - 3 和 4 是 photoCD 和 flashPIX,它们在收藏中,但没有外化,所以猜测 M$ 改变了支持它们的想法:[来自ImageFormat.cs 类] 私有静态 ImageFormat photoCD = new ImageFormat(new Guid("{b96b3cb3-0728-11d3-9d7b-0000f81ef32e}"));私有静态 ImageFormat flashPIX = new ImageFormat(new Guid("{b96b3cb4-0728-11d3-9d7b-0000f81ef32e}"));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    相关资源
    最近更新 更多