2009-12-17 30 views
3

我用自己的ImageIO替換了Java內部ImageFetcher。我們的軟件的一些圖像渲染器使用這些圖像,現在繪製反鋸齒縮放圖像而不是非反鋸齒。唯一的變化是圖像的來源,現在是BufferedImages而不是Toolkit-Images。ImageIO讀取是否意味着消除鋸齒縮放?

現在的問題是,區別在哪裏?哪個屬性導致圖像縮放反鋸齒?我一直認爲反鋸齒鍵只取決於我畫的圖形 - 但這顯然是錯誤的。對不起,我不能改變渲染器。

+0

你能不能給我們上的圖像渲染器運行在不同的平臺和觀察到的行爲細節?這可能會對發現正在發生的事情有很大的幫助。例如,Macs的Java2d實現依賴於Quartz 2d,這可能會導致Sun的實現發生重大變化。 – Ichorus 2009-12-18 02:51:39

回答

0

好的,畢竟有一個重要的區別:BufferedImages是RenderedImages,ToolkitImages不是。這可能會在某些情況下導致行爲不一致,但通常不會成爲Java問題。

2

如果ImageIO.read做任何反鋸齒,它可能是一個特定於平臺的問題,正如@Ichorus指出的那樣,因爲ImageIO.read沒有指定任何關於縮放或反鋸齒的預期行爲。

在發出g.drawImage或類似命令之前,您可能會嘗試處理的是Graphics2D上下文的渲染提示。

http://bit.ly/7b6lvg < - 上Graphics2D.setRenderingHint

的Java Sun文檔