두 개의 픽셀 (r, g, b)의 밝기를 비교하는 기본 산술 (코드에 이미있는 것보다 진보 된 것은 없습니다)을 사용하여 Java로 메서드를 작성하려고합니다. 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를 int로 새 Color()에 삽입 할 수없는 오류가 발생하지만 Color 또는 다른 유형으로 전환하면 int로 다시 전환하라는 메시지가 표시됩니다.
Math.max()는 확실히 여기에 오는 길입니다. if 문 앞에 변수를 초기화하기 위해 편집 한 예제의 경우 "int rrr = 0;"으로 초기화해야합니다. 감사. –
선언 할 때 코드 패스를 사용하기 전에 모든 코드 패스에 값을 할당하지 않으면 안됩니다. 그래서'else if'를'else'로 바꿨습니다. –