Как начать счет в java с нижнего левого угла?

введите здесь описание изображенияЯ знаю, что в Java верхний левый угол считается координатой (0,0). Я пытаюсь подсчитать пиксель файла. Координата пикселя файла (0,0) начинается в левом нижнем углу. Общая общая площадь экрана составляет 1121x881. Мне нужно посчитать пиксели по порядку, чтобы данные совпадали с координатами. Область, которую я хочу из 1121x881, составляет 543x451. Может ли кто-нибудь помочь мне сделать это?


person Darneezie    schedule 05.06.2014    source источник
comment
Я не понимаю, откуда вы берете эти размеры. Почему бы просто не перебирать пиксели в том порядке, в котором вы хотите их перебирать?   -  person MxLDevs    schedule 05.06.2014
comment
поэтому пиксели файла равны 0,0 от нижнего левого угла к верхнему правому. и в каждом пикселе есть конкретное значение, которое мне нужно. но java ожидает чтения в пикселях от левого верхнего угла к правому нижнему, верно?   -  person Darneezie    schedule 05.06.2014
comment
Java не ожидает чтения чего-либо в любом порядке. Вы тот, кто скажет Java, как его читать.   -  person MxLDevs    schedule 05.06.2014


Ответы (1)


РЕДАКТИРОВАТЬ: Кажется, что желаемый эффект - это 543 451 начало снизу слева?

в этом случае:

w= //your desired width
h= //your desired height
for(int x=543; x<w+543; x++){
    for(y=(pic.height-451)+h; y<pic.height-h;y++){
       //count;
    }
}

Этот код начинается в левом нижнем углу, перемещается вверх на 451, более 543 и захватывает любую ширину и высоту секции, как вы укажете.


вместо стандартного

for(int x=0; x<pic.width; x++){
    for(y=0; y<pic.height;y++){
       //count;
    }
}

почему бы не попробовать

for(int x=0; x<pic.width; x++){
    for(y=pic.height; y>0;y--){
       //count;
    }
}

Это начнет отсчет с нижнего левого угла и будет работать вверх, а затем влево. Изменяя предел петель, вы можете определить желаемую область.

Если вам нужна область размером 543x451 с нижним левым углом, таким же, как у исходного изображения, вы должны сделать:

for(int x=0; x<543; x++){
    for(y=pic.height; y>451;y--){
       //count;
    }
}
person Adam Yost    schedule 05.06.2014
comment
Итак, если общая площадь составляет 1121x881, а площадь, которую я хочу, составляет от 543 451 до 703 591; Итак: for(int x=543; x‹703; x++){ for(y=591; y›451; y--){ //count; } } ??? - person Darneezie; 05.06.2014
comment
О, вы не упомянули, что вам нужен раздел с 543 451 в левом нижнем углу. Это все еще будет работать. в циклах for x = (your bottom left corner x) x<(startx + width) x++ y = ((pic.height-desired bottom y)+height) y<(pic.height-bottom y) y++ - person Adam Yost; 05.06.2014