如何在 WIC API 上启用 HEIF、HEIC 或任何自定义安装的编解码器?

问题描述 投票:0回答:1

我找不到任何相关信息或指南。我已经安装了这些: https://www.microsoft.com/store/productid/9PMMSR1CGPWG?ocid=pdpshare https://www.microsoft.com/store/productid/9NMZLZ57R3T7?ocid=pdpshare HEIC 和 HEIF 类型的图像在 Windows 的照片应用程序中可以正常打开。然而,在我使用 中的 WIC 库的程序中,当尝试使用

CreateDecoderFromFilename
创建解码器时,无论如何我都会收到
WINCODEC_ERR_COMPONENTINITIALIZEFAILURE
,这与我安装所述编解码器之前的错误相同。现在显然我在这里遗漏了一些东西,如何让 WIC API 与已安装的编解码器一起使用?按照我的理解,所需要做的就是安装所有编解码器,并且所有支持 WIC 的应用程序都应该可以正常运行。或者我在这里遗漏了什么? 谢谢。

使用的代码:

CoCreateInstance(CLSID_WICImagingFactory,NULL,CLSCTX_INPROC_SERVER,IID_IWICImagingFactory,(LPVOID*) &wic_factory);
factory->CreateDecoderFromFilename(path, 
NULL,GENERIC_READ, WICDecodeMetadataCacheOnLoad,&decoder);

它在 HEIC 文件中的 CreateDecoderFromFilename 处失败。

windows winapi wic heic heif
1个回答
0
投票

原来是初始化 COM 接口导致了问题。 我在其他地方用 NULL 以外的参数初始化它,它以某种方式打破了这一点。叹。 CoUninitialize() 在正确的位置解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.