将 png 图像转换为有损 avif

2024-01-25

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


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 https://github.com/strukturag/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

(use avifenc --speed 4 --min 20 --max 22 -j 8以获得更高的压缩率并使用全部 8 个核心)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 png 图像转换为有损 avif 的相关文章

随机推荐

  • docusign 代表发送功能

    总的来说 我是 docusign 和 api 的新手 我已在 docusign 上手动创建了一个主帐户 现在我想使用此帐户创建新用户并使用代表发送功能 我已经浏览过这个 pdf http www docusign com sites def
  • 通用 Windows 平台应用程序和 C++/CLI (VS 2015 RC1)

    我有一些源自 NET 系统命名空间类的 C CLI 代码 有没有办法为通用 Windows 平台应用程序重用此代码 我无法在 C 中获得对系统命名空间的引用 尽管在 C 中这是可能的 看起来仅支持 C Cx 代码 而不支持托管 C CLI
  • Django 403 CSRF验证失败

    我正在为我的学校编写一个注册网站 并使用 Django 作为框架 对于注册 我需要用户名 密码和注册令牌 这些尚未得到验证 我现在要做的就是从注册输入页面 使用 POST 请求 转到 您已成功注册 页面 在此过程中 csrf 令牌显然拒绝验
  • 为什么“style=”上的真/假逻辑不起作用?

    这是有效的代码 plotshape xvalue location location absolute style shape labeldown color red size size tiny text Upper 这是代码不起作用 p
  • 如何选择 ImageGrab.grab() 在多显示器设置中抓取哪个屏幕?

    就像标题所说 我很好奇是否有一种方法可以配置 ImageGrab grab 模块来抓取 例如 在多显示器设置中抓取右侧屏幕 而不是左侧屏幕 不幸的是 由于 PIL 获取显示设备尺寸的方式 这是不可能的 当它获得设备上下文时 does为所有连
  • 如何在多行文本框中添加文本?

    我必须将文件的详细信息添加到多行文本框中 但所有详细信息都添加在文本框中的一行中 而不是按垂直顺序添加 我使用了Environment NewLine 还使用了 r n 但它没有任何帮助 我已在 Windows 窗体表单中勾选了多行文本框
  • Mysql 函数 MBRContains 不准确

    我有以下多边形 在图像中您可以看到它覆盖的区域 POLYGON 74 05100448502202 4 7239278424321 74 05092938316898 4 7241416902206 74 04830618275201 4
  • 当字体不支持符号时如何将版权、商标、服务标记等插入到WPF文本框中

    我们有一个 WPF 应用程序 可以显示包含各种公司符号的文本 例如商标 注册商标 版权和服务标志 该数据库的一些字段包含标准公司符号 最初 数据标记如下 Example Corp TM or Example Plan SM 我们可以轻松地将
  • 编辑 Ionic 选项卡图标样式

    我正在开发一个 Ionic 项目 其中主要导航方法是选项卡 中心选项卡需要突出 所以我在我的 scss 中创建了一个样式 如下所示 i icon ion ios camera height inherit border radius 100
  • 将 CSV 导入 MySQL 表返回错误 #1148

    我尝试使用 DirectAdmin 导入 但在不使用 LOAD DATA 的情况下选择 CSV 时 我收到错误 第 1 行 CSV 输入中的字段计数无效 当我尝试使用 LOAD DATA 时 出现以下错误 1148 此 MySQL 版本不允
  • 将项目从 Delphi 7 迁移到 Delphi XE 有多难?

    我们公司有一个软件已经开发了10多年 所以里面有一些非常过时的东西 它仍然很实用 什么都有 但我看到 Delphi XE 上的新功能 它让我想要切换 问题是源代码本身有超过 300mb 的 pas 文件 包含组件等总共 1GB 我们使用自定
  • F# If/Then 中的推断类型

    如果我有以下功能 let myFunc x y if y 0 then 1 x 我收到错误 Program fs 58 17 error FS0001 This expression was expected to have type un
  • Powershell 连接到 VSO

    我正在尝试使用 Powershell 连接到 VSO 这是我的代码 tfsServer New Object System Uri the server is here creds System Net CredentialCache De
  • Python - calendar.timegm() 与 time.mktime()

    我似乎很难理解这个问题 有什么区别calendar timegm and time mktime 说我有一个datetime datetime如果没有附加 tzinfo 两者不应该给出相同的输出吗 它们不都给出纪元和作为参数传递的日期之间的
  • C++:固定但运行时定义长度数组的向量

    我知道我可以使用 std vector
  • 使用 Linq 从数据表中获取不同的行(多列不同)

    我试图区分多个列并从数据表中获取数据行 但出现错误 Dim query As IEnumerable Of DataRow From row As DataRow In SourceTable AsEnumerable Select row
  • C# 和元数据文件错误

    我使用 MSDN 上的教程创建了自己的小型 C 编译器 但它无法正常工作 我遇到一些错误 然后修复它们 然后我遇到新的 不同的错误 然后修复它们 等等 最新的错误真的让我很困惑 Line number 0 Error number CS00
  • CSS 覆盖规则和特殊性

    我经常对 CSS 覆盖规则感到困惑 一般来说 我意识到更具体的样式表会覆盖不太具体的样式表 并且特异性取决于指定的选择器数量 还有 important关键字 也发挥着作用 因此 这是一个简单的示例 我有一个包含两个表格单元格的表格 表格本身
  • sklearn的MLP Predict_proba函数内部是如何工作的?

    我想了解如何sklearn的 MLP 分类器 https scikit learn org stable modules generated sklearn neural network MLPClassifier html检索其结果pre
  • 将 png 图像转换为有损 avif

    我尝试压缩大约 1MB 的 png 以获得更小的图像 当我使用以下命令将图像压缩为 jpeg 时 for i in card png do convert resize 445x625 background white flatten i