我有两个灰度 Png 文件( /image/8RGh4.jpg ),我想将它们视为二维数组,以便我可以对它们应用蒙版。
最好的方法是什么?
如果可能的话转换回来,这样我就可以在程序运行时显示蒙版图像。
这是大学的作业,只需要知道如何获取数据,然后我会做剩下的。
非常感谢
最佳答案
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]);
}
}
现在..做剩下的:)
关于java - 在 Java 中将 png 文件作为二维整数数组输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9327768/