基本情况
bash
# 更新软件包列表
apt-get update
# 安装 ImageMagick 和相关依赖
apt-get install -y imagemagick libmagickcore-6.q16-6-extra
libmagickcore-6.q16-6-extra
这个包提供了对多种额外图片格式(包括 HEIC 和 AVIF)的支持
所以一般情况下,安装这两个包就能搞定HEIC和AVIF的转换问题
但这样直接安装仓库的包,版本较低,比如HEIC只能支持到IOS18以下
另一种方式,手动编译安装高版本的ImageMagick
和libheif
依赖库
安装libheif
依赖库
HEIC的编解码需要用到libheif
库,为了支持高版本的HEIC,需要下载较新版本的libheif
下载源码包:发布 ·Strukturag/libheif --- Releases · strukturag/libheif

bash
# 可以先安装可能需要用到的依赖库
# 安装编译工具和基础依赖
apt-get install -y \
build-essential \
pkg-config \
cmake \
nasm
# 安装图片格式支持库
apt-get install -y \
libavif-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libwebp-dev \
libfontconfig1-dev \
libfreetype6-dev \
libxml2-dev \
zlib1g-dev \
liblcms2-dev \
libfftw3-dev \
libltdl-dev \
libbz2-dev \
liblzma-dev
# 解压并进入libheif源码目录
tar xzf libheif-1.19.7.tar.gz
cd libheif-1.19.7
# 清理旧的编译配置(如果之前安装过)
make distclean
# 创建构建目录并进入
mkdir build
cd build
# 运行 CMake 配置(默认安装到 /usr/local)
cmake ..
# 编译源码
make -j$(nproc)
# 安装到系统
make install
中间缺少什么库,直接安装就行
验证libheif
是否安装成功
bash
pkg-config --modversion libheif
成功的话会返回一个版本号
安装ImageMagick
/archive 的索引 --- Index of /archive
下载源码包,我下载的较新版本,ImageMagick-7.1.2-0.tar.gz
bash
tar xzf ImageMagick-7.1.2-0.tar.gz
cd ImageMagick-7.1.2-0
# 清理旧的编译配置(如果之前安装过)
make distclean
./configure \
--prefix=/usr/local \
--with-modules \
--enable-shared \
--with-avif=yes \
--with-heic=yes \
--with-jpeg=yes \
--with-png=yes \
--with-tiff=yes \
--with-webp=yes \
--with-fontconfig=yes \
--with-freetype=yes \
--with-xml=yes \
--with-zlib=yes \
--with-bzlib=yes \
--with-lzma=yes \
--enable-hdri=yes
make -j$(nproc)
make install
ldconfig
验证ImageMagick
是否安装成功
bash
magick -version
验证HEIC与AVIF支持
bash
# 验证 HEIC 支持
magick -list format | grep HEIC
# 验证 AVIF 支持
magick -list format | grep AVIF
# 应该能看到类似下面的输出
HEIC HEIC rw+ High Efficiency Image Format (1.20.1)
AVIF HEIC r-- AV1 Image File Format (1.20.1)
或者用ImageMagick转换一下这些格式的图片