请帮忙解释一下这个java源代码......!

时间:2015-03-05 13:55:39

标签: java watermark

这是确定要插入的水印位置的源代码。任何人都可以帮助解释以下源代码......?因为我不明白。 。 。!!!

static int Posisi = 0;
private int getPosisiX() {
    int x = Posisi % 3;
    return x == 0 ? 1 : (x == 2 ? Lebar - Lebar_Watermark - 1 : ((Lebar - Lebar_Watermark) >> 1));
}

private int getPosisiY() {
    int y = Posisi / 3;
    return y == 0 ? 1 : (y == 2 ? Tinggi - Tinggi_Watermark - 1 : ((Tinggi - Tinggi_Watermark) >> 1));
}

private ArrayList<Pixel> getOpacity(int[] gambarRGB, int[] watermarkRGB, boolean[] unavailable) {
    java.util.ArrayList<Pixel> pixels = new java.util.ArrayList<Pixel>(Lebar_Watermark * Tinggi_Watermark / 2);
    for (int h = 0, offsetWatermark = 0, offsetOrig = getPosisiY() * Lebar + getPosisiX(); h < Tinggi_Watermark; h++, offsetOrig += Lebar) {
        for (int w = 0; w < Lebar_Watermark; w++, offsetWatermark++) {
            int c = watermarkRGB[offsetWatermark];
            if (Opacity(c)) { // transparansi
            } else {

                pixels.add(new Pixel(w, h, watermarkRGB[offsetWatermark], gambarRGB[offsetOrig + w]));
                unavailable[offsetOrig + w] = true;
            }
        }
    }

    return pixels;
}

1 个答案:

答案 0 :(得分:1)

如果这是ternar。

return x == 0 ? 1 : (x == 2 ? Lebar - Lebar_Watermark - 1 : ((Lebar - Lebar_Watermark) >> 1));

这表示:

    if(x == 0) {
        return 1;
    } else {
        if(x == 2) {
            return Lebar - Lebar_Watermark - 1;
        } else {
            return ((Lebar - Lebar_Watermark) >> 1);
        }
    }