我找不到任何相关信息或指南。我已经安装了这些:
https://www.microsoft.com/store/productid/9PMMSR1CGPWG?ocid=pdpshare
https://www.microsoft.com/store/productid/9NMZLZ57R3T7?ocid=pdpshare
HEIC 和 HEIF 类型的图像在 Windows 的照片应用程序中可以正常打开。然而,在我使用
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 处失败。
原来是初始化 COM 接口导致了问题。 我在其他地方用 NULL 以外的参数初始化它,它以某种方式打破了这一点。叹。 CoUninitialize() 在正确的位置解决了这个问题。