Boa tarde senhores,
Estou tentando desenvolver um pequeno software de leitura de cartão resposta. Bom sou iniciante em java, por tanto se ele parecer rudimentar e logo de cara voces perceberem que há 1000 outras formas melhores de fazê-lo, é porque eu estou tentando fazer ele com o pouco conhecimento em java que eu tenho.
Enfim minha dúvida é bem simples, nesta classe, eu pego uma imagem do disco, e vou “varrendo” pixel a pixel descobrindo seu valor RGB para identificar o que é preto e o que é branco. Simples assim.
Porém no laço for do método showpixels(), ele não vai até o final do valor da variavel. Por exemplo são 2 laços for, um dentro do outro, que incrementam +1 nas variaveis altura e largura, carregando uma imagem com 800x600, o laço está parando em 599 x 599.
[code]
//…devidos imports…
public class Imagem{
public void showpixels()
{
try{
File arquivo = escolherArquivos();
BufferedImage imagem = ImageIO.read(arquivo);
int altura = imagem.getHeight();
int largura = imagem.getWidth();
System.out.println("Altura, Largura:"+altura+","+largura);
for (int i = 0; i < altura; i++){ // o problema está aqui
for (int j = 0; j < largura; j++){
int pixel = imagem.getRGB(i, j); // eu reparei o seguinte aqui se eu comento esta linha o laço conta normalmente até o final.
System.out.println(i+","+j);
printpixels(pixel); }
}
}catch(IOException e){
e.printStackTrace();}
}
public void printpixels(int pixel){
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel) & 0xff;
System.out.println("argb: " + red + ", " + green + ", " + blue);
}
public File escolherArquivos()throws IOException {
File arquivos = null;
JFileChooser fc = new JFileChooser();
fc.setDialogTitle("Escolha o(s) arquivo(s)...");
fc.setDialogType(JFileChooser.OPEN_DIALOG);
fc.setApproveButtonText("OK");
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.setMultiSelectionEnabled(true);
int resultado = fc.showOpenDialog(fc);
if (resultado == JFileChooser.CANCEL_OPTION){
return null;}
arquivos = fc.getSelectedFile();
return arquivos;
}
}[/code]
Enfim, revisei várias vezes, mas não cheguei ao porque isso está acontecendo… se puderem me ajudar, fico mto agradecido, abs!