上次写过一篇文章,是关于无法使用ImageMagick 7.0转换苹果HEIC照片格式的解决方法的,使用那个方法解决了之后,正常使用了很长一段时间,直到最近又出现了同样的问题,也是直接提示“Unsupported feature: Unsupported codec (4.3000)”,但重新用那个方法却无法解决。

摸索了一段时间,发现可以用以下方法解决(操作系统:Rocky Linux 9.1,RHEL类系统均可参考):
一、如果之前的libheif组件是通过yum或者安装rpm包方法进行安装的,先把现有的libheif组件全部卸载(包括依赖的组件也要全部卸载),同时删除系统上所有和libheif字样相关的文件。
二、下载下面的源码到系统里,比如/home/libheif,然后解压缩(这里假设解压缩到libheif-master):
下载地址1(进入GitHub的libheif页面自行下载):https://github.com/strukturag/libheif/
下载地址2::https://pan.baidu.com/s/1u4T767YP4hv5sps1ZYuGxg?pwd=h7j2
提取码:h7j2
三、进入终端,输入 cd /home/libheif/libheif-master 后回车,进入解压后的目录,然后执行:
./autogen.sh
四、执行以下命令进行编译前的检查:
./configure
五、执行以下命令进行编译和安装:
make && make install
六、安装后,有可能会出现生成的libheif.so库缓存不在/etc/ld.so.cache中,导致找不到这个库,可以执行以下操作:
1.执行vi /etc/ld.so.conf,检查”include ld.so.conf.d/*.conf”下方是否存在”/usr/local/lib”这个路径,如果没有,则要增加,增加后执行保存操作并退出;
2.如果已经增加了”/usr/local/lib”这个路径,则可以执行以下命令,检查libheif.so这个组件是否存在:
/sbin/ldconfig -v
3.如果存在libheif.so组件的,则可以再执行以下命令,该命令可以使所有的库文件都被缓存到文件/etc/ld.so.cache中:
ldconfig
执行完以上操作之后,问题解决!