我想在C#中为网站批量调整数千个jpg图像应用程序 为了高质量调整大小,我在其他问题上找到了答案 但我希望结果文件大小尽可能小,而不会显着降低质量。
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
如何在Bitmap类中确定或计算jpg的最佳质量值?
============
编辑1:
也许像smush.it,pngout,pngcrush等软件就是例子。我想知道他们如何定义最佳质量。
============
编辑2:
像Oli和haraldK:可能是我更清楚的问题是:
如何根据标准偏差定义质量值?
例如,如果颜色为0到255,则我的阈值偏差为25.
答案 0 :(得分:2)
理论上,您应该能够以高质量设置开始写出图像,然后在较低质量设置下再次连续写出图像,直到达到“可接受”阈值以下。保持最低质量的阈值(这个“算法”可以优化,类似于二分搜索)。
要自动测试“质量”,您可以计算压缩图像与原始图像之间像素值的百分比差异,并将其与阈值进行比较。必须通过反复试验找到阈值。
不幸的是,在许多情况下,人眼不会同意这种算法,因为总会有部分图像引起注意并且更重要,某些颜色的差异比其他颜色更重要等等。图像“质量”是一个非常主观的东西。
所以,我半同意@ Olivier的回答:
不,你不能。
但请继续尝试。要有创意,也许你找到适合自己的东西。 : - )
答案 1 :(得分:0)
测试不同的设置并选择您喜欢的设置。