2017-05-11 56 views
1

我想爲JPEG圖像轉換成PNG和做,所以我用下面的代碼:的Qt - 轉換JPEG至PNG沒有給予同樣的圖像

QImageReader reader; 
    reader.setFileName(imagePath); 

    QImage image = reader.read(); 

    QImageWriter writer; 
    writer.setFileName(newImagePath); 
    writer.write(image); 

我想輸出的圖像會完全與輸入相同,但差異圖像不是空的,我不明白爲什麼。差異圖像看起來像一個噪聲圖像,值範圍從-5到6.

我試圖用另一個名爲VTK的圖書館做同樣的事情,但我沒有同樣的問題,壓縮前後的圖像是一模一樣。

歡迎任何建議!

+0

我在谷歌上用jpeg測試你的代碼,我沒有問題,但是我的眼睛不是專家。你有更多的細節嗎? –

+0

Jpeg格式假定有一些壓縮。如果你使用'QImageReader :: setQuality()'並且將你的jpeg圖像的值設置爲100(對應於最高質量)會怎麼樣? – vahancho

+0

什麼是'imagePath'和'newImagePath'?你應該檢查'writer.write(image)'返回的值嗎? –

回答

0

不同的JPEG解碼器可以產生稍微不同的RGB值 (如果JPEG包含ICC配置文件,則更多);涉及到很多數字舍入和轉換(然而,編碼器應該與參考實現不同,每像素不超過一位,但我不會在此下注;例如參見this答案和this答案)。

我建議你嘗試在QImage中進行逐像素比較。

相關問題