Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从1D像素阵列中获取特定像素_Java_Arrays_Pixel - Fatal编程技术网

Java 从1D像素阵列中获取特定像素

Java 从1D像素阵列中获取特定像素,java,arrays,pixel,Java,Arrays,Pixel,我有一个像素阵列,包含多种颜色 int w = 32; int h = 32; int[] pixels = new int[w*h]; 如您所见,本例中的图像的尺寸为32x32。所有像素都存储在一维数组中 例如,我想从坐标(5/0)中得到像素,这意味着图像第一行中的第五个元素。现在的问题是,我有一个一维像素阵列。否则我就可以打电话了 int target = pixels[5][0]; 如何从一维阵列中获取此特定像素?如是: public int getPixel(x,y) { //

我有一个像素阵列,包含多种颜色

int w = 32;
int h = 32;
int[] pixels = new int[w*h];
如您所见,本例中的图像的尺寸为32x32。所有像素都存储在一维数组中

例如,我想从坐标(5/0)中得到像素,这意味着图像第一行中的第五个元素。现在的问题是,我有一个一维像素阵列。否则我就可以打电话了

int target = pixels[5][0];
如何从一维阵列中获取此特定像素?

如是:

public int getPixel(x,y) {
   //W is your width (number of pixels in a row) == 32
   return pixels(x + W*y);
}

这假设像素数据是按顺序逐行存储的,因此您可以“跳过”到正确的行(即“高度”x(每行的像素数)),然后添加列

它不是size
W*H
,因为它们可能不像您想象的那样存储数据。通常,存储这种性质的数据,使得数据的第一行存储在第一个W条目中,第二行存储在第二个W条目中,等等。;这将导致一个大小为
W*H
的数组。因此,要获取关于第X行第Y列的信息,必须获取索引
(W*X)+Y

public int getPixel(x,y) {

   return pixels(y + W*X);
}