我是Java的初学者和地理信息学专业的学生。我正在使用IntelliJ。
我有一个像素数组,用BufferedImage创建一个图像(效果很好)。
private byte[] pixels;
private int totBytes;
totBytes = numDataBytesOfAChannelPing * frequencyList.get( selectFrequency ).getSize();
pixels = new byte[totBytes];
BufferedImage image1 = createBufferedImage( pixels, totBytes, numChans, bytesPerSample, width, height );
我想在多维数组中使用每个像素的行和列等坐标,我不知道该怎么做。我试试:
编辑:
int w = 0, h = 0;
int[][] tableauMulti = new int[w][h];
for ( byte pixelSanscCoordonnees : pixels )
{
int i = pixels[0];
int j = pixels[0];
tableauMulti = new int [i][j];
}
我试试,但它不能很好地运作。有了这个图像的所有像素(129 000 000像素)在foreach循环中同时使用..我不知道如何构建我的foreach循环
谢谢
答案 0 :(得分:0)
我认为您正在寻找的是BufferedImage.getRGB(int x, int y)。您还可以使用BufferedImage.getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)一次获得多个像素。
有了这个,你实际上不必自己创建/存储数组,你可以直接从BufferedImage获取信息。
Java2s有一些很棒的教程。 Here's one用于获取/设置BufferedImage中的像素。