首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WIC (Windows映像组件)时遇到的问题

使用WIC (Windows映像组件)时遇到的问题
EN

Stack Overflow用户
提问于 2020-03-07 19:16:02
回答 1查看 236关注 0票数 1

最近,我使用WIC来解析GIF。代码已经写好了,它可以在win10和win7上完美运行,但在WinXP上失败了。我排除了很长一段时间,最终在这行代码中找到了原因:

代码语言:javascript
复制
// pBitmapFrameDecode is an IWICBitmapFrameDecode
hr = pBitmapFrameDecode->GetMetadataQueryReader(&pFrameMetadataQueryReader);
if (hr == WINCODEC_ERR_UNSUPPORTEDOPERATION) MessageBoxA(NULL, "WINCODEC_ERR_UNSUPPORTEDOPERATION", "Error!", MB_OK);

在这行代码中,GetMetadataQueryReader失败了,它导致GetMetadataByName在下面的代码中失败。我觉得很奇怪,所以我查看了MSDN。IWICBitmapFrameDecode::GetMetadataQueryReader

但我发现我的XP计算机满足了用MSDN编写的最低配置要求(SP3)。更奇怪的是,该函数返回WINCODEC_ERR_UNSUPPORTEDOPERATION。太奇怪了。起初,我认为这是我自己的设备问题,所以我借了几台XP电脑,并在它们上运行我的代码。它们都返回WINCODEC_ERR_UNSUPPORTEDOPERATION。MSDN错了吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-07 19:43:07

MSDN不是“错误的”,但有点不完整。

大多数WIC通常只是代码和解码器/编码器(编解码器,特定于给定的文件格式)之间的中介。

XP上支持GetMetadataQueryReader的事实并不意味着XP上的给定编解码器支持与其他Windows版本上的相同编解码器相同级别的元数据。图像元数据可能非常复杂和深刻(规范可以随着时间的推移而改进)。

如果你访问这个MSDN页面:What's new for Windows 7,你会看到:

、PNG和GIF的扩展元数据支持:

在Windows 7中,WIC扩展了对JPEG、PNG和GIF图像的元数据支持。

  • 添加了对动画GIF和GIF属性的支持。

因此,这可能意味着您正在访问具有不受支持的元数据属性的GIF文件,这些属性是在XP (Vista或7)之后添加的支持。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60576960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档