Prendiamo questo brano di codice
codice:
try {
img1 = new BufferedImage(img1.getWidth(), img1.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
for (int i = 0; i < ret.getWidth(); i++) {
for (int j = 0; j < ret.getHeight(); j++) {
if(img2.getRGB(i, j)>0.9) {
img1.setRGB(i, j, img1.getRGB(i, j));
}
else {
img1.setRGB(i, j, 0);
}
}
}
}
Per prima cosa, istanzi una nuova img1, con le dimensioni della vecchia img1 e color-space scala di grigi. Ok, fin qui tutto regolare.
poi cicli, come da mio codice, su img2 e verifichi se i pixel "abbiano un valore maggiore" di una certa soglia... ecco già qui cominciano i problemi: DEVI leggere le API associate: quel getRGB restituisce un int e ti assicuro che sempre e comunque sarà più grande di 0.9, a meno che il pixel non sia completamente nero... quindi siamo dentro l'if e qui sorgono i problemi: setti il colore del pixel i,j di img1 al colore che ha il pixel i,j di img1!!!!! Assurdo, ancora non esiste nemmeno quel pixel.