如何将二维整数数组转换为 java 中的图像?
How to convert a 2d array of integers to an image in java?
我有一个正整数数组。我如何将其显示为图像?我还不知道数组包含的值的范围或数组的大小。有人问了类似的问题 here。但是如果不搜索可能非常大的数组,我不知道可能的值。就效率和代码长度而言,执行此操作的最佳方法是什么?
这是数据可能是什么的一个小例子
0 2 4 6 8 10 12 14 16
2 2 6 6 10 10 14 14 18
4 6 4 6 12 14 12 14 20
6 6 6 6 14 14 14 14 22
8 10 12 14 8 10 12 14 24
10 10 14 14 10 10 14 14 26
12 14 12 14 12 14 12 14 28
14 14 14 14 14 14 14 14 30
16 18 20 22 24 26 28 30 16
18 18 22 22 26 26 30 30 18
看看here.
int xLenght = arr.length;
int yLength = arr[0].length;
BufferedImage b = new BufferedImage(xLenght, yLength, 3);
for(int x = 0; x < xLenght; x++) {
for(int y = 0; y < yLength; y++) {
int rgb = (int)arr[x][y]<<16 | (int)arr[x][y] << 8 | (int)arr[x][y]
b.setRGB(x, y, rgb);
}
}
ImageIO.write(b, "Doublearray", new File("Doublearray.jpg"));
System.out.println("end");
现在,重构此代码以读取正确的输入。
我有一个正整数数组。我如何将其显示为图像?我还不知道数组包含的值的范围或数组的大小。有人问了类似的问题 here。但是如果不搜索可能非常大的数组,我不知道可能的值。就效率和代码长度而言,执行此操作的最佳方法是什么?
这是数据可能是什么的一个小例子
0 2 4 6 8 10 12 14 16
2 2 6 6 10 10 14 14 18
4 6 4 6 12 14 12 14 20
6 6 6 6 14 14 14 14 22
8 10 12 14 8 10 12 14 24
10 10 14 14 10 10 14 14 26
12 14 12 14 12 14 12 14 28
14 14 14 14 14 14 14 14 30
16 18 20 22 24 26 28 30 16
18 18 22 22 26 26 30 30 18
看看here.
int xLenght = arr.length;
int yLength = arr[0].length;
BufferedImage b = new BufferedImage(xLenght, yLength, 3);
for(int x = 0; x < xLenght; x++) {
for(int y = 0; y < yLength; y++) {
int rgb = (int)arr[x][y]<<16 | (int)arr[x][y] << 8 | (int)arr[x][y]
b.setRGB(x, y, rgb);
}
}
ImageIO.write(b, "Doublearray", new File("Doublearray.jpg"));
System.out.println("end");
现在,重构此代码以读取正确的输入。