png - 图像从 jpg 转换为 png 时质量会下降吗?

标签 png jpeg

我们都知道,从 jpg 转换为 jpg 会使图像质量下降,而将 png 转换为 png 时不会发生同样的情况,但是 jpg 转换为 png 呢?

在我看来,它没有是有道理的,但我仍然不确定。

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

最佳答案

没有,但是很复杂。

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

将 JPEG 转换为 PNG 会使像素永远代表用于解码 JPEG 的特定方法,即使它不是最好的方法。如果您使用“坏”的 JPEG 解码器进行转换,您将失去以后使用“更好”的 JPEG 解码器的能力。

区别在于:

  • 色度上采样。 JPEG 可能以比图像的亮度(~亮度)更低的分辨率存储色度(~颜色)。规范没有说明应该如何调整色度 channel 的大小,所以一些解码器使用块最近邻缩放,一些使用双线性缩放,有些甚至做更奇怪的事情。
  • 数字精度。 JPEG 需要进行计算才能将图像从 DCT 和 YCbCr 表示转换为 RGB。这可以使用整数数学和 8 位颜色快速而廉价地完成,或者使用浮点数学和更高深度的颜色更好一点。
  • 颜色配置文件和 CMYK。转换可能会改变色彩空间(在 CMYK 的情况下,它必须转换为 RGB),这很容易出错。

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

  • 以及转换案例:jpeg2png project ,它不仅可以转换文件,还可以使用非常先进的后处理来消除 JPEG 压缩失真。在这种情况下,您可能会挽救低质量的块状 JPEG 并获得更平滑的图像。

    关于png - 图像从 jpg 转换为 png 时质量会下降吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38554199/

    相关文章:

    Android 为图像文件创建自定义 Exif 属性

    iphone .png 图像未显示在设备中

    css - 在 CSS 中为 PNG 图像投影

    python - 使用 CSS3 matrix3d 转换支持将 SVG 转换为 PNG

    cocoa - 将 CVImageBufferRef 转换为 PNG

    jpeg - 解析 jpeg 文件,SOS 标记

    javascript - 使用 NodeJS 的图像像素数组追踪边界

    Java - 如何结合 mp3 与 jpg/png/

    java - Android平台上JPEGImageDecoder的使用

    html - 你会如何简化这个过程?