2
我有兩個灰度Png文件(http://imgur.com/a/9F7UW),我想將其視爲2d數組,因此我可以將掩碼應用於它們。在Java中輸入png文件作爲整數的二維數組
這樣做的最好方法是什麼?
如果可能轉換回來,所以我可以顯示蒙面圖像作爲我的程序工作。
這是大學的作業,只需要知道如何獲取數據,然後我會做其餘的。
非常感謝
我有兩個灰度Png文件(http://imgur.com/a/9F7UW),我想將其視爲2d數組,因此我可以將掩碼應用於它們。在Java中輸入png文件作爲整數的二維數組
這樣做的最好方法是什麼?
如果可能轉換回來,所以我可以顯示蒙面圖像作爲我的程序工作。
這是大學的作業,只需要知道如何獲取數據,然後我會做其餘的。
非常感謝
try {
URL url = new URL("http://i.imgur.com/Ad0AP.png");
Image image = Toolkit.getDefaultToolkit().createImage(url);
} catch (MalformedURLException e) {
} catch (IOException e) {}
然後,您可以Image
情況下使用這種轉換爲BufferedImage
:
public static BufferedImage toBufferedImage(Image image) {
if (image instanceof BufferedImage) {
// Return image unchanged if it is already a BufferedImage.
return (BufferedImage) image;
}
// Ensure image is loaded.
image = new ImageIcon(image).getImage();
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bufferedImage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
return bufferedImage;
}
,然後通過它的圖像環的寬度和高度,之後你你幾乎可以把它放在你喜歡的任何數據結構中。即:
int w = i.getWidth();
int h = i.getHeight();
int[][] array = new int[w][h];
for (int j = 0; j < w; j++) {
for (int k = 0; k < h; k++) {
array[j][k] = i.getRGB(j, k); // or whatever
System.out.println("jk=" + array[j][k]);
}
}
現在..做休息:)
剛剛建立解決此一類的,運作良好:)謝謝 – Gwilym 2012-02-17 12:36:15
這就是偉大的,真棒! :) – epoch 2012-02-17 12:40:32