gpt4 book ai didi

java - 如何对由 zopfli 压缩的 png 进行充气

转载 作者:行者123 更新时间:2023-11-30 05:25:27 26 4
gpt4 key购买 nike

我使用 ImageOptim 压缩了一个 png 文件。我使用 Zopfli 作为压缩方法。 ImageOptim 保证它是无损压缩。我的png尺寸确实减小了,但是我怎样才能将其解压缩回原始尺寸?

我读到了 Zopfli 压缩,它说它使用 deflate 算法压缩 png 文件。如何在java中将压缩的png膨胀/解压缩回原始文件?

最佳答案

你不需要解压它,它应该是一个可以直接使用的 png 文件,除非你做错了什么。图像没有改变,只是磁盘中的二进制表示。

无法转到原始文件,您可以重新压缩它,但您需要知道用于创建它的库以及用于创建它的压缩级别和其他设置(过滤器、压缩策略、滑动窗口大小,...大多数 png 文件都是使用默认值创建的,但不是全部)。通常没有必要,但如果您需要保留原始文件(例如,为了匹配 md5 校验和),则不应使用 zopfli。

编辑:无损压缩有两种常见的定义:

  1. 能够重新创建输入文件的逐位精确副本。
  2. 能够恢复输入文件内容而不进行更改。输入文件的位精确再现不是目标。

一般文件压缩使用第一个定义。如果您压缩 .jpg 文件,您可以获得完全相同的 .jpg 文件。

域特定无损压缩通常使用第二个定义,如果您从 JPEG 创建 PNG 文件,您将无法恢复原始 JPEG 文件(即使您知道原始是 JPEG 图像),但原始 JPEG 和 PNG 具有完全相同的图像数据,但大家都称 PNG 无损。

如果您将使用 Zopfli 来减小 PNG 文件大小的程序视为“PNG 文件压缩器”,那么使用一般定义它不会是无损的,但它将使用特定于域的定义。如果程序声称无损压缩图像而不是文件,则毫无疑问,这是第二个定义。如果程序声称是无损优化器,那么它也是第二个定义,没有歧义。

关于java - 如何对由 zopfli 压缩的 png 进行充气,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58758528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com