Estou com um problema, to quebrando cabeça faz tempo, é o seguinte: to percorrendo uma imagem atráves dos pixels para saber o pedaço que quero cortar até ai tudo OK. Faço a compilação e tudo certo, sei que tá certo pq coloquei Dialogo de Mensagens. O problema é na hora de armazenar os pixels lido em um array BufferedImage, já tentei de tudo e não dá certo ele para o for e não vai até o final. A seguinte mensagem aparece "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException".
Por favor me ajudem!!!!!!
for(int x = 0; x < largura; x++) {
for(int y = 0; y < altura; y++) {
raster.getPixel(x, y, pixels);
red = pixels[0];
green = pixels[1];
blue = pixels[2];
alpha = pixels[3];
if (red < 200) {
posH++;
cortaImagem--;
}
if (red > 200){
cortaImagem++;
}
if (cortaImagem == altura){
if (x !=posX){
JOptionPane.showMessageDialog(null,"Terminou leitura do caracter="+posX+","+y+" "+posW+","+posH, "Processo Imagem", JOptionPane.PLAIN_MESSAGE);
for (int a=posX; a<=posW; a++){
for (int b=posY; b<=posH; a++){
imagemSeparada[countImagem].setRGB(a, b, 0);
}
}
posX = x;
++posX;
countImagem++;
} else {++posX;}
}
}
cortaImagem = 0;
posW++;
}
JOptionPane.showMessageDialog(null,"Pronto", "Processo Imagem = " + countImagem, JOptionPane.PLAIN_MESSAGE);
}
O problema é no if (cortaImagem == altura), é quando eu preciso pegar da imagem carregada o pedaço do ponto posX a posY com tamanho posW e posH. Depois tem que seguir para pegar do pedaço por adiante.
Mas se o seu objetivo é recortar um pedaço da imagem, faça assim: