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

相关推荐
wypywyp1 小时前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
阿蒙Amon1 小时前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
No8g攻城狮3 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
森G5 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
生活很暖很治愈8 小时前
Linux——孤儿进程&进程调度&大O(1)调度
linux·服务器·ubuntu
getapi10 小时前
注塑件的费用构成
linux·服务器·ubuntu
lucky-billy11 小时前
Ubuntu 下一键部署 ROS2
linux·ubuntu·ros2
阿梦Anmory11 小时前
Ubuntu配置代理最详细教程
linux·运维·ubuntu
getapi12 小时前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu
小天源13 小时前
Cacti在Debian/Ubuntu中安装及其使用
运维·ubuntu·debian·cacti