Java 交换二维数组行?

Java 交换二维数组行?,java,Java,我是编程新手,我的任务之一是用java转换图像。这一部分特别说明“调用镜像会将映像从上到下反转。要从上到下反转,请将第一行替换为最后一行,将第二行替换为第二行,依此类推,直到整个映像反转为止。” 这就是我现在拥有的,但每当我称之为“镜像”时,它只是将图像转换成一堆无法区分的线条。我不知道该怎么做 public void mirror(){ int[][]图像数据=数据; int i; int j; 对于(i=0;i

我是编程新手,我的任务之一是用java转换图像。这一部分特别说明“调用镜像会将映像从上到下反转。要从上到下反转,请将第一行替换为最后一行,将第二行替换为第二行,依此类推,直到整个映像反转为止。”

这就是我现在拥有的,但每当我称之为“镜像”时,它只是将图像转换成一堆无法区分的线条。我不知道该怎么做

public void mirror(){
int[][]图像数据=数据;
int i;
int j;
对于(i=0;i}
循环应该是这样的:

for (int i = 0; i < height / 2; i++)
{
    for(int j = 0; j < width / 2; j++)
    { 
        int temp = imageData[i][j];
        imageData[i][j] = imageData[height-i-1][width-j-1];
        imageData[height-i-1][width-j-1] = temp;
    }
}
for(int i=0;i
循环应该是这样的:

for (int i = 0; i < height / 2; i++)
{
    for(int j = 0; j < width / 2; j++)
    { 
        int temp = imageData[i][j];
        imageData[i][j] = imageData[height-i-1][width-j-1];
        imageData[height-i-1][width-j-1] = temp;
    }
}
for(int i=0;i
我要做的是从顶部开始(并将其放入新数组的底部),而不是从图像的底部开始。我也不需要临时矩阵

public void mirror(){
int[][]图像数据=新的int[高度][宽度];
int i;
int j;
int x=0;
对于(i=高度-1;i=0;i--)
{
对于(j=0;j}
我要做的是从顶部开始(并将其放入新数组的底部),而不是从图像的底部开始。我也不需要临时矩阵

public void mirror(){
int[][]图像数据=新的int[高度][宽度];
int i;
int j;
int x=0;
对于(i=高度-1;i=0;i--)
{
对于(j=0;j
}
我试过了,但它一直抛出java.lang.ArrayIndexOutOfBoundsException:328错误。它必须被钳制吗?尝试使用二等分它仍然会抛出数组索引边界异常328尝试-1附加值对,我做了。似乎图像的数据已更改,但我在图像中未看到任何视觉/图形更改。这是故意的吗?我试过了,但它一直抛出java.lang.ArrayIndexOutOfBoundsException:328错误。它必须被钳制吗?尝试使用二等分它仍然会抛出数组索引边界异常328尝试-1附加值对,我做了。似乎图像的数据已更改,但我在图像中未看到任何视觉/图形更改。这是有意的吗?但你所做的不是保留图像的顶部,而是会有一个底部部分的镜像。编译和运行时,我调用itOmar时,它没有任何作用,你确定吗?我认为它将从数据矩阵的顶部获取信息,并将其移动到底部的imageData矩阵,从而创建镜像效果在我的代码中,然后它应该可以工作,但是您所做的并不是保留图像的顶部,而是会有一个底部部分的镜像编译和运行,但是当我调用itOmar时,它不会做任何事情,您确定吗?我认为它将从数据矩阵的顶部获取信息,并将其移动到底部的imageData矩阵,从而创建镜像效果在我的代码中,然后它应该可以工作