【问题标题】:Convert png images to lossy avif将 png 图像转换为有损 avif
【发布时间】:2021-04-22 04:46:35
【问题描述】:

我尝试压缩大约 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)

【问题讨论】:

  • 我不相信 avif 是在 ImageMagick 中完全开发的。但是你可以试试 -density X,其中 X 介于 0 和 100 之间。越低。值,越压缩。但这只是一个猜测,因为 avif 甚至没有列在格式列表中。此外,它可能只在 IM 7 的测试中实现。您正在使用 IM 6
  • 对不起,我的意思是 -quality X 不是 -density X
  • - 转换为 aviff 时质量没有影响
  • 太糟糕了。抱歉,但正如我所说,它仍在开发中。

标签: imagemagick avif


【解决方案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 个核心)

【讨论】:

  • avifenc 在 Debian stable 上吐出“分段错误”。有什么想法吗?
  • 我都试过了。唯一的输入和输出。有和没有 -o 以及这里和其他地方的几个。我想它只是坏了。我可能会在 Debian 维护者处编译源代码或提交错误。它是 Debian。大多数时候一切都很好,然后有些东西就坏了。 S* 发生了。
猜你喜欢
  • 2022-11-22
  • 2017-10-25
  • 1970-01-01
  • 2011-02-01
  • 2020-06-15
  • 2012-06-01
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多