Я знаю, что в Java верхний левый угол считается координатой (0,0). Я пытаюсь подсчитать пиксель файла. Координата пикселя файла (0,0) начинается в левом нижнем углу. Общая общая площадь экрана составляет 1121x881. Мне нужно посчитать пиксели по порядку, чтобы данные совпадали с координатами. Область, которую я хочу из 1121x881, составляет 543x451. Может ли кто-нибудь помочь мне сделать это?
Как начать счет в java с нижнего левого угла?
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
Итак, если общая площадь составляет 1121x881, а площадь, которую я хочу, составляет от 543 451 до 703 591; Итак: for(int x=543; x‹703; x++){ for(y=591; y›451; y--){ //count; } } ???
- person Darneezie; 05.06.2014
О, вы не упомянули, что вам нужен раздел с 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