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

相关推荐
问简9 小时前
Ubuntu 26 + Windows 10 双系统 NTFS 共享盘笔记
ubuntu
pilifeng111 小时前
Ubuntu Linux 目录结构详解
linux·ubuntu
daemon.qiang1 天前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
orange....1 天前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全
园长的牧歌1 天前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
牢姐与蒯2 天前
Linux进程间通信(一).进程间通信概念&&环境切换(着重强调vscode)
linux·运维·服务器·ubuntu
指尖的爷3 天前
【地狱级难度】ubuntu系统GOCV编译安装
linux·运维·ubuntu
j7~3 天前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架
可涵不会debug3 天前
公司外怎么连接管家婆?从 SQL Server 安装到 cpolar 固定 TCP 远程登录
linux·运维·ubuntu
云泽8083 天前
从零搭建 WSL2 + Ubuntu C/C++ 开发环境:原理、实践与底层架构解析
linux·c++·windows·ubuntu·wsl2