2

我尝试压缩我的~1MB png 以获得更小的图像。

当我将图像压缩为 jpeg 时:

for i in card*.png ; do convert -resize 445x625 -background white -flatten "$i" ../medium/"${i%.*}.jpg" ; done

他们最终大约 100kb

所以我尝试了

for i in card*.png ; do echo $i; convert -resize 445x625 "$i" ../medium/"${i%.*}.avif" ; done 

这导致 avif 图像 ~400kb,我猜是因为它们是无损压缩的。

如何创建有损压缩的 avif 图像?什么是有用的质量水平才能让图像的文本仍然清晰可读?

(我在 Ubuntu 上使用 ImageMagick 6.9.10-23)

4

1 回答 1

1

libheif

你可以安装

apt install libheif-examples

然后使用heif-enc以下命令创建heif文件:

for i in card*.png ; do echo $i; heif-enc "$i" -o "${i%.*}.avif" ; done

如果需要avif格式,则需要编译最新版本的libheif,其中有-A创建 avif 文件的选项。(自述文件中有一节如何在您的系统上构建它。但至少在 Ubuntu 上这不会导致运行heif-enc


更好的使用avifenc

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sudo apt install zsh # needed for this pspecific package install
brew install joedrago/repo/avifenc

现在您拥有使用以下语法创建 avif 文件的工具:

avifenc [options] input.[jpg|jpeg|png|y4m] output.avif

(用于avifenc --speed 4 --min 20 --max 22 -j 8获得更高的压缩率并使用所有 8 个核心)

于 2021-01-17T20:16:29.400 回答