2015-11-01 58 views
0

我通過BufferStrategy用線如(Java)圖形變化分辨率?

g.drawImage(bufferedImage, x, y, null); 

目前,我有這個運行未修飾的JFrame,1920x1080p的按照我的筆記本電腦的分辨率繪圖使用Graphics一個Canvas。我很好奇是否有任何方法來改變渲染的分辨率,尤其是降低分辨率以提高效率/速度,或適合於另一個不同尺寸的屏幕。使用相機渲染的對象很多,遊戲運行得相當好,但對於分辨率的任何可用更改將作爲可選項在我的設置中很有用。

我研究了這個,發現沒有好的答案。感謝您的時間。

回答

0

(分辨率的變化,如用於打印。)

最好使用的drawImage具有較小圖像,並且縮放的寬度和高度。

現在,您甚至可以使用具有BufferedImage.createGraphics的Graphics2D在您自己的BufferedImage中渲染所有內容,然後進行縮放。對於文字或印刷不太好。

或者使用Graphics2D的比例:

對於複雜的渲染:

g.scale(2.0, 2.0); 
... // Draw smaller image 
g.scale(0.5, 0.5); 

你可以想象這可能不會在內存消耗幫助,除了需要更小的圖像。在一點上,圖像的所有像素必須以設備顏色大小給出。 256色gif或10KB jpg無濟於事。

另一種方式,支持高分辨率與緊記憶也存在。有人可以使用平鋪圖像,參見ImageIO

重要的是準備paintComponent/paint以外的圖像。

如果您製作自己的BufferedImage,您也可以使用兼容設備的位圖,但這看起來很環繞(GraphicsEnvironment)。