我有一個多維的int數組,它具有'0'或'1'。我想創建一個類似於熱圖的圖像。具有「0」的元素將是一種顏色,而「1」將是另一種顏色。 例如使用Java數組的熱圖圖像
int [][] test = {{0,0,1}, {1,1,0}, {1,1,1}}
我會得到的「3×3」的形象,有點像這樣。
wwr
rrw
rrr
其中白色表示白色和紅色。
感謝您的任何建議。
我有一個多維的int數組,它具有'0'或'1'。我想創建一個類似於熱圖的圖像。具有「0」的元素將是一種顏色,而「1」將是另一種顏色。 例如使用Java數組的熱圖圖像
int [][] test = {{0,0,1}, {1,1,0}, {1,1,1}}
我會得到的「3×3」的形象,有點像這樣。
wwr
rrw
rrr
其中白色表示白色和紅色。
感謝您的任何建議。
setRGB()
或getRaster()
方法BufferedImage
適用於此。引用的示例爲here,使用SwingWorker
,並且這個example使用Runnable
線程。
看一看Java2D。
基本上你想要爲像素顏色創建一個2d int數組並將它們繪製到圖像上。看看Graphics和Graphics2D對象以及BufferedImage等等。然後使用Java ImageIO將圖像寫入文件。
鑑於你的價值都爲1和0的,你爲什麼不使用二維布爾數組?這樣可以節省空間並簡化if語句。
如果您願意,您可以使用Java的Graphics2D軟件包繪製這些點!
這是我怎麼樣設置我的Graphics2D的實例:通過做
private static BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
private static Graphics2D g = image.createGraphics();
再畫到圖像:
g.drawLine(x1, y1, x2, y2);
,並通過使用像這樣的一個方法保存文件:
private static void saveToFile(){
try {
ImageIO.write(image, "png", new File("map.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
Java 2D? http://java.sun.com/products/java-media/2D/index.jsp –
這應該是更清晰然後 –