2011-01-19 23 views
4

我想繪製一個位圖,手動指定它的每個點的顏色(換句話說,任務是將RGB值的二維數組保存爲PNG(或其他無損的真彩色位圖格式)文件) 。如何用Scala繪製位圖?

在給定的座標下,有一個函數可以在圖像上打印一些文本(給定大小的給定字體)。

如何實現這個?

回答

7

您可以使用Java標準庫ImageIO類。它提供了一種靜態的write方法,可以將PNG格式的輸出流編碼並寫入RenderedImage。對於RenderedImage,您可以輕鬆使用BufferedImage類。它提供了一個用於直接操縱單個像素顏色的方法。或者,您也可以撥打BufferedImage.getGraphics(),它會返回一個Graphics的實例,您可以在任何類型的圖形或文本上繪製任何形狀或文本,就像使用任何AWT組件一樣。

這是常規的Java東西。斯卡拉不提供任何特殊的包裝,我也懷疑這是值得的努力。

2

您應該使用java庫,如Java Advanced Imaging API。這是有據可查的。

+0

你的意思是說這樣一個原始任務真的沒有Scala本地(或包裝)實現? – Ivan 2011-01-19 20:11:05

+1

來自processing.org的處理是一個非常好的用於2D內容的Java庫,並且可以與Scala完全兼容。 – nullspace 2011-01-19 20:31:43