SampleModelsampre=pi.getSampleModel();RandomIteritem=RandomIterFactory.create(pi,null);for(intl=0; l<pi.getHeight() ; l++)for(intc=0; c<pi.getWidth() ; c++){
item.getPixel(c,l,pixel);raster.getPixel(c,l,pixel);rasterW.getPixel(c,l,pixel);//pego o pixelcor=(pixel[0]>127?255:0);//converte em preto e brancopixel[0]=pixel[1]=pixel[2]=cor;rasterW.setPixel(c,l,pixel);//devolvo o pixel modificado para o WritableRaster }
Se você puder, não trabalhe com JAI modificando um pixel de cada vez. Isso é muito, MUITO, MUITO lento. Só faça isso para coisas muito pequenas (você vai mudar 10.000 pixels de uma imagem, não 10.000.000 pixels como é o caso típico).
Como você quer efetuar uma operação para converter uma imagem em tons de cinza para preto-e-branco, você tem de olhar isso na documentação, mas acho que é bem mais simples que essa coisa braçal de ficar mexendo em um pixel de cada vez.
Acho que é algo tão fácil quanto copiar sua imagem (em tons de cinza) para uma nova imagem (em preto-e-branco) e especificar alguns parâmetros (no seu caso o “threshold”, que é 127).
Para deixar uma imagem em somente preto em branco, ou seja, binarizá-la vc deve ter um limiar que significa um ponto onde vc quer que altere a imagem, fica da seguinte maneira: