调整JPEG大小而不损失质量

本文关键字:损失 JPEG 调整 | 更新日期: 2023-09-27 18:07:57

我正试图在一个小的基于web的图像编辑器与。net工作。我有JPEG图像调整大小的问题。正如我所理解的那样,没有办法在不损失质量的情况下操作JPEG,我认为这是唯一的办法。在不损失图像质量的情况下,在asp.net中调整图像大小。在这个示例中,目标图像被保存为png格式。

那么我要做的是
1. 当用户上传图像时,将其保存为PNG
2. 操纵它,如调整大小旋转等
3.另存为JPEG

如果我将png保存为jpeg,质量也会变差吗?或者它应该很好,因为它只是用其他格式保存它,而不是真正操纵它。

谢谢。

调整JPEG大小而不损失质量

是的,它也会失去质量。调整JPEG大小的困难是由于压缩(又名编码)算法本身,所以什么图像格式是源无关紧要,因为要编码图像,您必须首先将其解码为原始格式(即位图)。

此外,最好记住,如果您正在编码的图像之前已经是JPEG,那么在调整大小后编码器将很难再次编码它。JPEG将图像划分为8x8像素块来执行编码,调整大小可以移动这些块的边界。这是一个重要的注意事项,因为随着压缩比的提高,块之间的边界会变得更清晰——JPEG在编码图像中不规则的尖锐边缘时尤其糟糕(我跳过所有的内部细节,它们现在并不重要,如果你想知道它们,请评论)。但是,这个效果对于典型的照片压缩比来说并不重要。

本质上:如果您将图像编码为JPEG,则必须至少编码一次(很明显,不是吗?))。而JPEG(即有损)编码等于质量损失。

如果你不想失去质量,不要使用jpeg。保持png有什么不好?当你将png重新保存为jpeg时,是的,根据你选择的压缩比,你会失去一些质量。这就是jpeg格式的本质

PNG格式是一种无损格式,所以只要你用源图像创建PNG就可以了。

参考:

JPEG -大多数规范都是有损的(新规范也有无损格式,但还没有很多库支持)。

PNG -无损

TIFF -无损(RLE编码)

BMP -无损(RAW编码)