Objective c 如何使用objective C压缩图像(png、jpg等)
我想在OSX上收缩png或jpg。我只想缩小而不影响图像质量。Objective c 如何使用objective C压缩图像(png、jpg等),objective-c,image-processing,compression,shrink,Objective C,Image Processing,Compression,Shrink,我想在OSX上收缩png或jpg。我只想缩小而不影响图像质量。 像 有推荐的图书馆吗?我只知道imagemagick。有没有一种方法可以在本地实现这一点?或者另一个库在不影响图像质量的情况下收缩/压缩图像 我的目标是缩小文件大小,例如: logo.png >> 476 k before shrink logo.png >> 50k after shrink 编辑:为了清楚起见,我想压缩文件的大小,而不是图像分辨率。通过使用图像量化工作-图像中的相似颜色转换为HSV或R
像 有推荐的图书馆吗?我只知道imagemagick。有没有一种方法可以在本地实现这一点?或者另一个库在不影响图像质量的情况下收缩/压缩图像 我的目标是缩小文件大小,例如:
logo.png >> 476 k before shrink
logo.png >> 50k after shrink
编辑:为了清楚起见,我想压缩文件的大小,而不是图像分辨率。通过使用图像量化工作-图像中的相似颜色转换为HSV或RGB模型,然后根据距离合并
它是如何工作的?
……
当您上传PNG(便携式网络图形)文件时,图像中的类似颜色会组合在一起。这种技术称为“量化”
……
src: 这里的答案概括了这样做的方法: 关于这个问题,也有一些答案,请参阅如何在Mac OS上使用objective-c实现这一点: 有关更深入的指南,请参见维基百科:使用图像量化-图像中的相似颜色转换为HSV或RGB模型,然后根据距离合并 它是如何工作的?
……
当您上传PNG(便携式网络图形)文件时,图像中的类似颜色会组合在一起。这种技术称为“量化”
……
src: 这里的答案概括了这样做的方法: 关于这个问题,也有一些答案,请参阅如何在Mac OS上使用objective-c实现这一点: 有关更深入的指南,请参见Wikipedia:我的建议是使用它,它将提供比ImageMagick更好的结果,对于中给出的单个示例,它也会产生非常类似的输出。这是“最佳颜色量化的Kohonen神经网络”一文中提出的方法的微小C实现。因为您不再依赖于封闭的未知实现,所以仅此一项就更好了 原文(57KB),tinypng.org(16KB),pngnq(17KB): 使用ImageMagick,我能得到的最佳256色量化使用了Floyd Steinberg的实验室颜色空间和抖动:
convert input.png -quantize LAB -dither FloydSteinberg -colors 256 output.png
这将生成一个16 KB的png,但它包含更多的视觉构件:
我的建议是使用,它会比ImageMagick提供更好的结果,对于中给出的单个示例,它也会产生非常相似的输出。这是“最佳颜色量化的Kohonen神经网络”一文中提出的方法的微小C实现。因为您不再依赖于封闭的未知实现,所以仅此一项就更好了
原文(57KB),tinypng.org(16KB),pngnq(17KB):
使用ImageMagick,我能得到的最佳256色量化使用了Floyd Steinberg的实验室颜色空间和抖动:
convert input.png -quantize LAB -dither FloydSteinberg -colors 256 output.png
这将生成一个16 KB的png,但它包含更多的视觉构件:
您在使用ImageMagick时遇到问题吗?它有一组丰富的量化函数,如
bool MagickQuantizeImage( MagickWand mgck_wnd,
float number_colors,
int colorspace_type,
float treedepth,
bool dither,
bool measure_error )
这是一个非常彻底的您在使用ImageMagick时遇到问题吗?它有一组丰富的量化函数,如
bool MagickQuantizeImage( MagickWand mgck_wnd,
float number_colors,
int colorspace_type,
float treedepth,
bool dither,
bool measure_error )
这里有一个非常彻底的您需要弄清楚,您的意思是要减小图像的大小还是文件的大小?(请记住,任何文件压缩都必须使用阅读应用程序可以识别的算法完成。)你知道tinypng.org使用的方法吗?我的建议是首先了解要做什么,在任何语言/库中如何做,然后才开始考虑如何在objective-c中具体实现它。它执行某种形式的量化,但精确的细节在任何地方都不可用。这意味着,如果不将大量不同的png图像上传到服务并检查结果,我们也无法知道该方法是否会对某些给定的输入产生不良结果。最后,这种变换确实会影响图像质量。你不能执行没有的有损压缩。不,我不知道tinypng.org的方法。我只想压缩图像,而不会造成明显的图像质量损失。在tinypng.org上,我读到他们使用的方法在photoshop等软件中是不可用的。研究无损压缩和有损压缩,然后与我们联系。你需要弄清楚,你是想减小图像的大小还是文件的大小?(请记住,任何文件压缩都必须使用阅读应用程序可以识别的算法完成。)你知道tinypng.org使用的方法吗?我的建议是首先了解要做什么,在任何语言/库中如何做,然后才开始考虑如何在objective-c中具体实现它。它执行某种形式的量化,但精确的细节在任何地方都不可用。这意味着,如果不将大量不同的png图像上传到服务并检查结果,我们也无法知道该方法是否会对某些给定的输入产生不良结果。最后,这种变换确实会影响图像质量。你不能执行没有的有损压缩。不,我不知道tinypng.org的方法。我只想压缩图像,而不会造成明显的图像质量损失。在tinypng.org上,我读到他们使用的方法在photoshop等软件中是不可用的。研究无损压缩和有损压缩,然后与我们联系。为什么你认为它使用HSV?它也可以是实验室、HSB、HSI、YCbCr等,甚至RGB。当然,这些链接都不能说明tinypng.org是如何做到的。有太多的方法来执行量化,以试图猜测该服务到底做了什么。我访问过的大多数参考文献都提到使用HSV和RGB的算法,这就是我假设的原因。此外,是的,当然链接没有告诉tinypng实际上是如何做到的,我没有说他们做到了。为什么你认为它使用HSV?也可以