在假想的水平线上翻转像素

时间:2017-04-15 18:21:36

标签: java

我需要在假想的水平线上翻转图像,但无法弄清楚如何做到这一点。

这是我目前的代码,eclipse告诉我没有使用hold的值,但我不知道它是怎么回事。感谢所有帮助。

public static void flipH(Picture p){

    int height= p.getHeight();
    int width= p.getWidth();

    Pixel empty= new Pixel(v, 0, 0);
    Pixel hold= new Pixel(v, 0, 0);

    for(int i=0; i< height; i++) {
        for(int j=0, r=width-1; j<width/2 && r>width/2; j++, r--) {
            empty= p.getPixel(i, j);
            hold = p.getPixel(i, r);
            hold= empty;                
        }
    }               
}

1 个答案:

答案 0 :(得分:1)

空和保持只是引用,也就是指针,指向真实对象的箭头。 分配空并按住以指向某个像素将永远不会更改像素。 要交换两个像素,你需要像...这样的东西。

    int a = p.getColorOfPixel(x, y1);
    int b = p.getColorOfPixel(x, y2);
    p.setColorOfPixel(x, y1, b);
    p.setColorOfPixel(x, y2, a);