gpt4 book ai didi

c++ - WIC HEIF HEIC 图像解码 C++

转载 作者:行者123 更新时间:2023-12-03 06:57:44 25 4
gpt4 key购买 nike

Windows Imaging Component 用于解码 heif 图像。但是,成功解码图像需要来自 Microsoft 商店的额外应用程序(heif 图像扩展、hevc 视频扩展)。

没有它们,WIC API 将返回空白图像。现在我希望能够以编程方式确定 heif 文件是否可以正确解码。

我尝试使用 DXVA Checker 来查找所需解码器类型的存在。它应该是WIC_HEIF_Decoder。但我找不到它在任何地方注册。

enter image description here

有一个 GUID key ,但是 CLSID_WICheifDecoder 已记录 here我认为即使解码器丢失也可以在系统中注册。

有人知道如何做到这一点吗?

最佳答案

如果您计划使用 WIC 解码器,则应该使用 WIC API 来检查可用性,而不是 Media Foundation API,即使目前已知这两个解码器打包在一起并属于同一个 Windows 应用商店应用程序(扩展名)。

您应该能够使用 IWICImagingFactory::CreateComponentEnumerator 枚举解码器并确定 HEIF 是否在可用解码器中。

Microsoft HEIF Decoder

  • Class Identifier: CLSID_WICHeifDecoder
  • Signing Status: WICComponentSigned
  • Author: Microsoft
  • Vendor Identifier: {F0E749CA-EDEF-4589-A73A-EE0E626A2A2B}
  • Version: 1.0.0.0
  • Spec Version: 1.0.0.0
  • Friendly Name: Microsoft HEIF Decoder
  • IWICBitmapCodecInfo:
    • Container Format: GUID_ContainerFormatHeif
    • Pixel Formats: GUID_WICPixelFormat32bppBGR
    • Color Management Version: 1.0.0.0
    • MIME Types: image/heic,image/heif,image/avci,image/heic-sequence,image/heif-sequence,image/avcs,image/avif,image/avif-sequence
    • File Extensions: .heic,.heif,.avci,.heics,.heifs,.avcs,.avif,.avifs
    • Patterns: 576

您可能更喜欢将 IWICImagingFactory::CreateDecoderGUID_ContainerFormatHeif 结合使用,因为您应该对解码能力更感兴趣,而不是特定解码器实现。

使用注册表查询或直接 CoCreateInstance 调用检查特定的 CLSID 很简单,但对于指定的任务没有多大意义。

关于c++ - WIC HEIF HEIC 图像解码 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64294983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com