n灰度梯度的数量质量

时间:2018-03-26 18:04:29

标签: c# png image-compression

所以我正在尝试使用nQuant进行压缩,但结果很糟糕:

使用规范的QuantizeImage调用

var quantizer = new WuQuantizer();
Bitmap imageToSave = new Bitmap(image);                                        
using (var quantized = quantizer.QuantizeImage(imageToSave))
{
   quantized.Save(Path.Combine(imagesPath, imageName + "." + format), format);
}

处理此enter image description here

我获得了这个

enter image description here

任何想法如何防止质量降低这么多?

1 个答案:

答案 0 :(得分:0)

Xialoin Wu的快速最佳色彩量化器是最有效的色彩量化方法之一,可提供出色的效果。但是,在直方图计数过程中,原始图像中的低频颜色倾向于被排除。尤其是,当使用少量的盒子来量化具有少量颜色的图像时,原始颜色的损失会增加。因此,为了弥补这些缺点,通过使用基于成对最近邻的快速算法,即使在仅使用少量颜色的情况下,更好的颜色量化算法仍然有效。

鉴于颜色数量有限,在清晰可见的虚假边缘形式的平滑颜色渐变区域中,量化图像中会出现严重的伪影。为了减少这种伪像,通常在量化之后采用随后的抖动步骤。抖动将量化误差分布到相邻像素中,有助于隐藏伪边缘。

GDI +通过Encoder.Compression支持不同的压缩算法。但这不是“质量”。每种算法都会将图像压缩为不同的大小。其中,就压缩质量而言,字节数最少的压缩可被视为“最佳”。但是,这不是Encoder.Quality的意思。编码器。质量处理有损压缩的损失程度;不适用于PNG的内容。 PNG不是有损格式;因此,质量不适用。 Possibly using 3rd party applications to write PNG files

请找到以下c#开源代码,以获得更好的质量,而无需如上所述支持使用GDI +压缩PNG文件。

https://github.com/mcychan/nQuant.cs

256 colors iPhone