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

相关推荐
序属秋秋秋2 小时前
《Linux系统编程之入门基础》【Linux基础 理论+命令】(上)
linux·运维·服务器·ubuntu·centos·命令模式
一张假钞6 小时前
Ubuntu SSH 免密码登陆
linux·ubuntu·ssh
sulikey11 小时前
【Linux权限机制深入理解】为何没有目录写权限仍能修改文件权限?
linux·运维·笔记·ubuntu·centos
lihongli00011 小时前
修改ros工作空间名称方法与步骤
ubuntu·ros
江公望13 小时前
ubuntu kylin(优麒麟)和标准ubuntu的区别浅谈
linux·服务器·ubuntu·kylin
mucheni13 小时前
迅为RK3588开发板Ubuntu 系统开发ubuntu终端密码登录
linux·运维·ubuntu
木欣欣粉皮14 小时前
Ubuntu使用图片
linux·ubuntu
蓝冰印20 小时前
HarmonyOS Next 快速参考手册
linux·ubuntu·harmonyos
DechinPhy21 小时前
Ubuntu挂载新硬盘
linux·运维·服务器·ubuntu
lht63193561221 小时前
Ubuntu Server 系统安装图形界面远程工具(RDP)
linux·运维·ubuntu