这是确定要插入的水印位置的源代码。任何人都可以帮助解释以下源代码......?因为我不明白。 。 。!!!
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;
}
答案 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);
}
}