Estou varrendo um BufferedImage que contém uma foto de 1600 x 1200 pixels com o seguinte codigo:
for (int x = 0; x < image.getHeight(); x++) {
for (int y = 0; y < image.getWidth(); y++) {
E ele está me dando java.lang.ArrayIndexOutOfBoundsException e eu não sei o por quê.
Por que o x se refere a largura (width) e o y se refere a altura (height).
Você inverteu.
Mas sempre que eu quero acessar a posição (x,y) da matriz eu não estou a acessar a linha x e a coluna y? Isso não implica que x esta relacionado a altura e y com a largura?
Por exemplo, se quero acessar o terceiro elemento da primeira linha eh 0,2. A linha (altura) eh 0 e a coluna(largura) eh 2?
To confuso…
Não. Em imagens sempre falamos em coluna e linha.
Tanto que a resolução do seu monitor é 1024x768, e ele é mais largo do que alto, certo?
Pense no eixo cartesiano: (x,y)
sempre referensie-se primeiro pela largura, depois altura, tanto para imagem, quanto qualquer evento que for usar matrizes