我尝试压缩我的~1MB的ping来得到一个更小的图像。
当我使用:
将图像压缩为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
结果是avf图像~400kb,我猜是因为它们是无损压缩的。
如何创建有损压缩的avf图像?什么是一个有用的质量水平,使图像与文本仍然清晰可读?
(我在Ubuntu上使用ImageMagick 6.9.10-23)
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文件。(在README中有一节关于如何在您的系统上构建它。但至少在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个内核)