0
我想用Java編寫一種方法,使用比較兩個像素(r,g,b)的亮度的基本算術(沒有比代碼中已有的更高級的方法),c1和C2。它需要從c1和c2中拉出(r,g,b)值,比較並選取較亮的一個,然後輸出第三種顏色。這是我有什麼:彩色照片濾鏡方法Java
public static int combineBrighter(Color c1, Color c2) {
int r = c1.getRed();
int g = c1.getGreen();
int b = c1.getBlue();
int rr = c2.getRed();
int gg = c2.getGreen();
int bb = c2.getBlue();
if(r >= rr){
int rrr = r;
} else if(rr>=r) {
int rrr = rr;
}
if(g >= gg){
int ggg = g;
} else if(gg>=g) {
int ggg = gg;
}
if(b >= bb){
int bbb = b;
} else if(bb>=b) {
int bbb = bb;
}
Color f = new Color(rrr, ggg, bbb);
return f;
任何想法,爲什麼它不工作?我得到一個錯誤,其中rrr,ggg和bbb無法作爲整數插入到新的Color()中,但如果將它們切換到Color或其他類型,它會告訴我將它們切換回整數。
Math.max()肯定是去這裏的路。對於你編輯我在if語句之前初始化變量的例子,你還必須將它們初始化爲:「int rrr = 0;」。謝謝。 –
您在聲明時沒有/必須初始化_if_所有代碼路徑在使用之前都爲它們分配一個值。這就是爲什麼我把你的'else if'改爲'else'。 –