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转换一下这些格式的图片

相关推荐
Lyre丶17 小时前
Ubuntu 24.04 LTS 安装GAMIT
linux·经验分享·学习·ubuntu·gamit
新手村领路人17 小时前
ubuntu24.04安装todesk远程工具
ubuntu·todesk·远程工具
namekong817 小时前
ubuntu 通过下面几种方式查看系统 重启时间/开机时间:
linux·运维·ubuntu
老黄编程19 小时前
ubuntu如何查看一个内核模块被什么模块依赖(内核模块信息常用命令)?
linux·运维·ubuntu
什么半岛铁盒1 天前
C++项目:仿muduo库高并发服务器-------Channel模块实现
linux·服务器·数据库·c++·mysql·ubuntu
神都少年1 天前
Linux Ubuntu Docker 常用命令
linux·ubuntu·docker
Tipriest_1 天前
Ubuntu 中 Bash / Zsh / Ash / Dash 的使用与区别(含对比图)
ubuntu·bash·dash
老黄编程2 天前
ubuntu 20.04 代号 focal , ubuntu 22.04 代号为 jammy, ubuntu24.04 代号为 noble
linux·运维·ubuntu
陈震_2 天前
linux系统(ubuntu)安装mysql8详细教程
linux·运维·ubuntu
LoneEon2 天前
Ubuntu 部署 Harbor 构建企业级私有镜像仓库
linux·运维·ubuntu·docker·harbor