windows下使用heif库解码heic图片

简言

heic图像格式是一种图像编码格式,可通过ffmpeg和libdec265进行解码。使用python开发可通过命令pip install pillow9.4.0, pip install pillow-heif0.12.0下载对应版本的heif进行解码(heif是通过调用libdec265.dll来进行解码),另外可通过,本文介绍通过在官方下载heif源码,并使用cmake-gui编译生成libheif.dll。

编译heif

相关下载

  1. 下载heif源码:github下载地址是:https://github.com/strukturag/libheif,这里我用的是v1.17.6版本。
  2. 下载libde265源码:https://github.com/strukturag/libde265,使用的版本是v1.0.16
  3. CMake版本这里用的是3.31.6,版本太低会有问题

配置编译

1.编译lib265(首先编译,后面编译heif要用到):
使用git bash或者cmake-gui.exe生成vs解决方案:

使用git bash生成vs解决方案
mkdir build
cd build
cmake …

在文件目录中生成vs解决方案然后使用vs进行打开,接着按照下面步骤进行编译,编译后获得de264.lib和libde265.dll。
在这里插入图片描述
2.编译heif
使用cmake-gui输入heif源码路径,配置源码路径和生成路径;
在这里插入图片描述
点击"Configure",然后勾选“WITH_LIBDE265”,取消“WITH_LIBDE265_PLUGIN”,并把上面编译好的de265库的头文件路径和动态库路径分别填入configure中,如下图所示:
在这里插入图片描述
配置好了之后点击"Generate",等待生成结束。
在这里插入图片描述
生成完成之后点击"Open Project"打开vs解决方案,选择生成所有
在这里插入图片描述
在vs编译完成之后,会生成heif.dll
在这里插入图片描述

测试

找到生成的heif-convert.exe,并把heif.dll,libde265.dll拷贝到这个exe同级目录,“Win+r"打开命令行,进入到该exe所在目录,使用命令"heif-convert --list-decoders"即可列出所有的解码器。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c7124a3a70f8446b846507fe6cb0b4b8.png
在这里插入图片描述
如果解码器都为空,说明没有正确配置解码器。

更多推荐