Просмотрите программу и подумайте, как она будет выполняться, если, скажем, x = 50, y = 50
x < img.getWidth()/2
оценивается как истина, поэтому красный установлен на 255, перейдите к следующему оператору
y > img.getHeight()/2
оценивается как false, поэтому выполняется код «else», а зеленый устанавливается на 255
Это дает вам пиксель с 255 красным и 255 зеленым, а не тем, что вы ожидаете.
Если вы используете elseif
, вы получите желаемое поведение.