2011-04-14 71 views
1

當保存與ImageIO通用ImageWriteParam新圖像支持1.0f(高質量),而不管使用(例如,PNG,JPEG,GIF)圖像壓縮算法從範圍0.0f(高壓縮)compressionQuality參數的顯式設置。如何從IIOMetadata獲得圖像壓縮質量?

  • 有沒有辦法讀取從現有的圖像compressionQuality
  • compressionQualitycompressionQuality只是提示ImageWriter的提示,並沒有存儲在圖像元數據中的任何位置?如果圖像處理軟件(例如GIMP)設法在「另存爲」對話框中提供以下選項,這是真的嗎?

Image Save As Advanced Options checkbox tooltip

我設法讀取ImageInputStreamIIOMetadata並通過其metadataFormatNames迭代打印出在不同的XML格式(本地和標準javax_imageio_1.0,通常情況下)的圖像的元數據。雖然我找不到圖像compressionQuality的任何跡象。

+1

儘管某些軟件和某些圖像格式*可能*允許存儲該信息,但通常無法做到您想要的。將jpeg保存爲「80%質量」(無論如何)。現在將其轉換爲PNG。現在將其重新轉換爲保存爲「80%質量」的jpeg。即使文件格式保存了質量,你會得到什麼? 80%?那是完全錯誤的。這是80%的80%(再次,無論「80%」是什麼意思)。另外,對於某些格式,「壓縮質量」取決於壓縮機的質量。對於某些格式,一個程序的「80%」可能是另一個程序的「70%」等。 – SyntaxT3rr0r 2011-04-14 08:52:37

回答

2

我不認爲壓縮質量存儲與圖像元數據,這只是處理參數。