我正在嘗試使用ImageIO將BufferedImage另存爲JPEG。但即使在使用100質量進行保存時,由於色度子採樣,我也遭受了質量損失。禁用Java ImageIO色度子採樣
我已成功解決了此問題,方法是恢復舊JAI庫並明確設置水平和垂直子採樣爲1. 但是,關鍵要求是將圖像保存爲漸進式,而JAI似乎不支持。
有沒有辦法使用較新的ImageWriter禁用子採樣?
在此先感謝
如果可能的話,我想避免的ImageMagick
我正在嘗試使用ImageIO將BufferedImage另存爲JPEG。但即使在使用100質量進行保存時,由於色度子採樣,我也遭受了質量損失。禁用Java ImageIO色度子採樣
我已成功解決了此問題,方法是恢復舊JAI庫並明確設置水平和垂直子採樣爲1. 但是,關鍵要求是將圖像保存爲漸進式,而JAI似乎不支持。
有沒有辦法使用較新的ImageWriter禁用子採樣?
在此先感謝
如果可能的話,我想避免的ImageMagick
的JPEG Metadata Format Specification and Usage Notes讀數似乎表明這是可能通過使用自定義IIOMetadata
寫入圖像。
在互聯網上搜索帶來了https://codereview.appspot.com/3082041/patch/204004/210007,這似乎正是以這種方式使用ImageIO。
我還沒試過,也不知道它是否真的有效。
非常感謝你。我已經設法通過使用IIOMetadata來實現它,與舊的JAI相比,它的性能令人震驚,但它現在會做。 – ejthurgo
經過對圖像寫入/質量/壓縮問題的廣泛搜索。 「使用ImageMagick」似乎是一個普遍的答案。理想情況下,我想知道在使用ImageMagick路由之前,這在Java中是否可行。 我不反對第三方庫,只要它們輕巧可靠。 – ejthurgo
謝謝澄清。也許這些信息應該[編輯](http://stackoverflow.com/posts/14149739/edit)到問題中。 –