2016-07-24 579 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圖像,並獲得更流暢的圖像。