2

我想在 OSX 上缩小 png 或 jpg。我只想缩小而不影响图像质量。
tinypng.org

有推荐的图书馆吗?我只知道imagemagick。有没有办法在本地做到这一点?或其他库来缩小/压缩图像而不影响图像质量?

我的目标是缩小文件大小,例如:

logo.png >> 476 k before shrink 
logo.png >> 50k after shrink

编辑:要清楚,我想压缩文件的大小,而不是图像分辨率。

4

3 回答 3

2

TinyPNG.org通过使用图像量化来工作——图像中相似的颜色被转换为 HSV 或 RGB 模型,然后根据距离进行合并。

它是如何工作的?
...
当您上传 PNG(便携式网络图形)文件时,图像中的相似颜色会组合在一起。这种技术被称为“量化”
...
src:http ://tinypng.org

此处的答案概述了这样做的方法:https ://stackoverflow.com/a/492230/556479 。

关于这个问题也有一些答案,请参考如何在Mac OS 上使用 Objective-c执行此操作:如何将位图减少为一组已知的 RGB 颜色

有关更深入的指南,请参阅 Wikipedia:http ://en.wikipedia.org/wiki/Color_quantization

于 2013-02-08T22:55:43.773 回答
1

我的建议是使用http://pngnq.sourceforge.net,它会提供比 ImageMagick 更好的结果,对于http://tinypng.org中给出的单个示例,它也会产生非常相似的输出。它是论文“Kohonen Neural Networks for Optimal Color Quantization”中方法的微小 C 实现。仅此一项就更好了,因为您不再依赖封闭的未知实现。

原始文件 (57 KB)、tinypng.org (16 KB)、pngnq (17 KB):

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

使用 ImageMagick,我可以得到的 256 色的最佳量化使用了 Floyd-Steinberg 的 LAB 色彩空间和抖动:

convert input.png -quantize LAB -dither FloydSteinberg -colors 256 output.png

这会生成一个 16 KB 的 png,但它包含更多的视觉伪像:

在此处输入图像描述

于 2013-02-08T22:57:19.690 回答
1

您在使用 ImageMagick 时遇到问题吗?它具有丰富的量化功能,例如

bool MagickQuantizeImage( MagickWand mgck_wnd, 
                          float number_colors, 
                          int colorspace_type, 
                          float treedepth, 
                          bool dither, 
                          bool measure_error )

这是使用 imageMagick 进行量化的非常详尽的指南

于 2013-02-09T16:08:42.930 回答