2016-07-24 580 views
3

我们都知道从jpg转换为jpg会导致图像质量下降,而且当png到png时也不会发生这种情况,但对于png怎么办?将图片从JPG转换为PNG时,图像是否会失去质量?

在我看来,它并不合适,但我仍然不确定。

我认为这个问题的好答案可能是一篇文章,其中会有一个很好的解释为什么它会发生。你现在有吗?我找不到这样的文章。

+0

这可能与你有点相关。 http://www.softorbits.com/batch_picture_resize/articles/convert-jpg-to-png.html – Danieboy

+0

将*转换为* JPEG是有损的,但*来自*不是。例如:你可以随心所欲地提取一个JPEG,但你总是得到相同的结果(使用相同的软件和解压缩设置)。 – usr2564301

回答

1

您所描述的过程是:

  1. JPEG流=> JPEG解码器=> BITMAP
  2. => PNG ENCODER => PNG流

有在步骤#2没有变化。步骤#1可能具有JPEG中固有的舍入误差。

5

它没有,但它很复杂。

读取JPEG不是一个精确定义的过程。不同的JPEG解码器可以产生与同一文件略有不同的结果。

将JPEG转换为PNG使得像素永远代表了用于解码JPEG的特定方法,即使它不是最好的方法。如果您使用“糟糕的”JPEG解码器进行转换,您将无法在以后使用“更好”的JPEG解码器。

的区别在于:

  • 色度上采样。 JPEG可以以低于图像亮度(〜亮度)的分辨率存储色度(〜颜色)。该规范没有说明色度通道应该如何调整大小,因此一些解码器使用块状最近邻居缩放,一些使用双线性缩放,一些甚至更奇怪。

  • 数值精度。 JPEG需要进行计算以将图像从DCT和YCbCr表示转换为RGB。这可以使用整数数学和8位颜色快速便宜地完成,或者使用浮点数学和更高深度的颜色更好一点。

  • 颜色配置文件和CMYK。转换可能会改变色彩空间(在CMYK的情况下它必须转换为RGB),这很容易出错。

还有其他原因,以避免转换:

  • 文件几乎肯定会变得更大。 JPEG压缩伪像是PNG最糟糕的情况。
  • 该文件将丢失元数据(如相机信息,GPS)。虽然理论上PNG可以携带相同的元数据,但实际上转换器很少保留它。

和外壳转换:jpeg2png project,不只是转换文件,而且还采用了比较先进的后期处理来消除JPEG压缩失真。在这种情况下,您可能会打捞出质量较差的JPEG图像,并获得更流畅的图像。