一般我们在CentOS上使用ImageMagick可以直接通过yum install -y ImageMagick
命令安装。
但是,目前通过官方源最多只能更新到:6.9.10.68-5.el7_9
版本。
如果想使用ImageMagick处理webp
,heic
格式的图片的话,该安装包就不满足了。
解决办法 1
有一个办法是编译安装 7.X 版本(7.X版本命令稍有变化)。
解决办法2
如果不想升级到 7.X 版本,还可以通过一些第三方源安装更新版本,例如:remi
。
首先安装 EPEL 源
yum -y install epel-release
如果已安装,可跳过该步。
安装 remi 源
wget http://rpms.remirepo.net/enterprise/7/remi/x86_64/remi-release-7.8-1.el7.remi.noarch.rpm
rpm -Uvh remi-release-7.8-1.el7.remi.noarch.rpm
此处参考:https://centos.pkgs.org/7/remi-x86_64/ImageMagick6-devel-6.9.12.8-1.el7.remi.x86_64.rpm.html
笔者使用的是 CentOS 7.8,如果是 CentOS 7.9 还需要修改 rpm 文件为:
remi-release-7.9-1.el7.remi.noarch.rpm
,其他版本以此类推。
此时通过 remi 源已经可以安装6.9.12.8-1.el7
版本(命令:yum install -y ImageMagick6-devel
),该版本包已支持webp
格式,因为依赖了libwebp7-devel(x86-64)
包。
而笔者还需要支持heic
格式。继续找。。发现 remi 源下还有ImageMagick6-heic
包(链接戳我),窃喜,本以为再安装一下这个包,就万事大吉了。安装时又提示缺少libheif
、libde265
、x265-libs
依赖,一番Google,了解到依赖的这几个包在另一个第三方源 Fusion 下,果断尝试一波,见后文。
安装 Fusion 源
wget http://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
rpm -Uvh rpmfusion-free-release-7.noarch.rpm
此处参考:https://centos.pkgs.org/7/rpmfusion-free-updates-x86_64/libheif-1.3.2-2.el7.x86_64.rpm.html
安装 ImageMagick heic
安装完以上第三方源后,就可以真正开始安装 ImageMagick 了,一条命令搞定~
目前可以更新到ImageMagick6-heic-6.9.12.8-1.el7
版本。
yum --enablerepo=remi install -y ImageMagick6 ImageMagick6-devel ImageMagick6-heic
简单梳理了一下以上包的依赖关系:
- ImageMagick6-devel 依赖:ImageMagick6、libwebp7-devel(x86-64)
- ImageMagick6-heic 依赖:ImageMagick6-libs,libheif(Fusion源下)
- libheif 依赖:libde265、x265-libs
附上一些常用的命令
- 查询支持的图片格式
convert -list format
- 获取图片尺寸
convert xx.png[0] -format %G info:
# 或者
convert xx.png[0] -format %G -identify null:
更多使用参考:#identify
- 生成缩略图
convert -strip -quality 80% -thumbnail 100% /tmp.webp[0] /tmp.png
- heic 旋转方向自动修正
convert XXX.HEIC -auto-orient XXX.HEIC.jpg
评论区