tinypng.com 如何最小化图片?

平面设计 瘸子 图像魔术师
2022-02-03 19:35:11

我最近发现tinypng.com,这有助于我通过保持相同的质量将我网站上的图片从多60k到少最小化20k(对我个人来说,乍一看,我不太喜欢图形,所以我不能确切地告诉你 - 这是我的主观观点)。在他们的网站上,他们写了以下关于他们如何做到这一点的内容:

当您上传 PNG(便携式网络图形)文件时,图像中相似的颜色会组合在一起。这种技术被称为“量化”。通过减少颜色数量,24 位 PNG 文件可以转换为更小的 8 位索引彩色图像。所有不必要的元数据也被剥离。结果更好的 PNG 文件具有 100% 的透明度支持。有你的蛋糕,也吃吧!

由于我发现该服务对于运行网站非常重要,因此我不想依赖它们 - 它们明天可能会消失,但我仍然需要缩小图片。那就是我来这里问的:如何在我的gimp安装中或使用 Linux 命令行工具来做同样的事情imagemagick

3个回答

对于瘸子

您可以在 Gimp 中通过在导出前将图像模式更改为颜色索引来获得颜色索引的 PNG。但是,这会将您限制为二进制 Alpha 通道(换句话说,这将不支持 PNG 中可用的比例不透明度),即使您可以通过在进行转换时使用“抖动透明度”设置来缓解这种情况。

对于 ImageMagick

convert input.png PNG8:output.png

现在,这取决于您拥有哪种 PNG。诸如徽标或屏幕截图之类的 CGI 在 PNG 中压缩得非常好,对它们进行颜色索引可能会模糊边缘,因此颜色索引版本看起来不会那么好,也不会小很多。

格式 PNG8 即。在另存为 PNG 之前索引到 255(+ 全透明)颜色可以减少近 75% 的大小,但结果看起来经常像素化或存在有害条纹。这取决于使用的抖动设置以及图像着色的复杂程度。如果图像只有 255 种或更少的颜色,并且透明度只有完整或没有(= 没有部分透明的像素),那么结果当然是完美的,您不需要任何巧妙的转换方法。

不幸的是照片有渐变,255 色通常是不够的。开发了数学方法以在索引之前巧妙地更改图像内容,以使 255 色调色板可能更好地适应。更改是有损的,保存图像后无法恢复。在某些文本中,有损预处理称为“矢量量化”。TinyPNG 和其他一些 PNG 优化服务使用它。

作为一个糟糕的替代品,我尝试了选择性模糊(= Photoshop 中的智能模糊)来扁平化复杂的颜色,但保留边界和边缘。它有帮助,但结果大多比 TinyPNG 的处理更差

矢量量化实现可作为可运行软件和程序员代码使用。以下是一些资源链接:

1)矢量量化的解释https://www.gamasutra.com/view/feature/131499/image_compression_with_vector_.php

2)PNG优化的一般指南。它包含几个指向实际工具和矢量量化实现的链接。

https://medium.com/@duhroach/reducing-png-file-size-8473480d0476

3)Pngquant;矢量量化的实现https://pngquant.org

它有大量的解释、代码下载链接以及使用 Pngquant 的应用程序和插件的链接。定价 = 免费软件,捐出你想要的。

没有现成可用的 GIMP 扩展,但也许您会看到其他有用的版本。

我只尝试过 SuperPNG,一个 Photoshop 插件。https://www.fnordware.com/superpng/

它似乎与 TinyPNG 具有相同的质量。在 Photoshop 中,它在“文件”>“另存为”对话框中显示为新格式选项。它不是过滤器。我不知道如何在其他允许 Photoshop 滤镜插件的程序中使用它。但它适用于 CC 之前的旧版 Photoshop,并且有 64 位和 32 位版本。

在 linux 上,您可以无损地优化您的 png 图像,optipng这些图像并没有像 tinyPNG 那样的所有效果,但已经有了一些百分比。

使用以下方法优化当前文件夹中的所有图像:

sudo apt install optipng
find . -name '*.png' -exec optipng -o7 {} \;