Ubuntu22.04安装ImageMagick支持HEIC、AVIF转换

基本情况

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以下

参考:无法处理在 iOS18 iPhone 上拍摄的 HEIC 图像 ·ImageMagick/ImageMagick (图像魔术) ·讨论 #7426 ·GitHub 的 --- Failure to process HEIC images taken on iOS18 iPhone · ImageMagick/ImageMagick · Discussion #7426 · GitHub

另一种方式,手动编译安装高版本的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转换一下这些格式的图片

相关推荐
a413244714 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
上天_去_做颗惺星 EVE_BLUE20 小时前
Docker高效使用指南:从基础到实战模板
开发语言·ubuntu·docker·容器·mac·虚拟环境
芋圆奶绿,要半t1 天前
ubuntu20/2204修改系统时间的命令
ubuntu
s_daqing1 天前
arm的ubuntu启动node
linux·arm开发·ubuntu
GIS瞧葩菜1 天前
entity几何体轴编辑(沿 Z 轴平移)完整流程拆解
linux·运维·ubuntu
bjxiaxueliang2 天前
一文解决蓝牙连接难题:Ubuntu命令行蓝牙强制配对
linux·ubuntu·蓝牙连接命令
Will_Ye2 天前
Ubuntu22.04 蓝牙设备快速自动连接
ubuntu·bluetoothctl
lihe7582 天前
每天凌晨3点自动同步UBUNTU源
linux·运维·ubuntu·本地源
zbliquan2 天前
SS928v100远程ubuntu交叉编译开发环境搭建
linux·运维·ubuntu
_叶小格_2 天前
cp、scp、rsync命令详解
linux·运维·服务器·ubuntu·centos·运维开发