Java 如何垂直翻转图像?

Java 如何垂直翻转图像?,java,Java,我正在尝试运行此代码,但我一直收到一个错误消息: 在main.main.flipvertical(main.java:403)中,这是下面的代码 img[行][col]=img[高度-行-1][col] 我不知道代码出了什么问题,也不知道他们在说什么错误 下面是代码的其余部分: public static int[][] flipVertically(int[][] img) { String dir = "image.jpg"; img = Util.readImageTo

我正在尝试运行此代码,但我一直收到一个错误消息:

在main.main.flipvertical(main.java:403)中,这是下面的代码

img[行][col]=img[高度-行-1][col]

我不知道代码出了什么问题,也不知道他们在说什么错误

下面是代码的其余部分:

public static int[][] flipVertically(int[][] img) {

    String dir = "image.jpg";

    img = Util.readImageToMatrix(dir);


    int height = img[0].length;
    int width = img.length;

    for(int row = 0; row < height/2; row++)
        {

            for(int col = 0; col < width; col++)
            {
                int p = img[row][col];
                img[row][col] = img[height - row - 1][col];
                img[height - row - 1][col] = p;
            }
        }
    return img;


}
publicstaticint[]flipvertical(int[]img){
String dir=“image.jpg”;
img=Util.readImageToMatrix(dir);
int height=img[0]。长度;
整数宽度=整数长度;
对于(int row=0;row
  • 高度和宽度交换

    int height = img.length;
    int width = img[0].length;
    
  • 您不应该读取循环中的矩阵并使用函数输入中的参数img,或者最好创建一个新矩阵

  • 您可以交换整行,如下所示:

    public static void flipVertically(int[][] img) {
    
        int height = img.length;
        int width = img[0].length;  
    
        for(int row = 0; row < height/2; row++)
        {
            int [] myrow =  img[row];
            img [row] = img[height - row - 1];
    
            img[height - row - 1] = myrow;          
        }      
    }
    
    publicstaticvoid(int[]img){
    内部高度=内部长度;
    int width=img[0]。长度;
    对于(int row=0;row

  • “我一直有这个错误”-请在你的问题中包含错误。好的,我补充了我能补充的。但是它没有指定错误。
    在main.main.flipvertical(main.java:403)
    是stacktrace的一部分。一开始是什么?请参阅“at main.main.flipvertical(main.java:403)”是错误所在,您需要发布错误(应该在上面的一行上)。还有,你应该发一个。啊,好的,我明白了。在我的代码中,[0]是带高度的,所以我认为它也会在下面。