Hola a todos lo que encontre este codigo donde lo cambia a esclas de grises , peroa hora como hago para cambiar a blanco ynegro (binarizar) , pq creo que primero se cmbia a escala de grises si alguien pudiera ayudar seria de mucho agradecimiento .
public boolean escalaDeGrises()
{
boolean estado = true;
int p, promedio, rojo, verde, azul;
int a = imagenBase.getWidth(this); //Ancho
int h = imagenBase.getHeight(this); //Alto
int totalDePixeles = a * h;
int pixeles[] = new int[totalDePixeles]; //Arreglo de pixeles
try
{
pg.grabPixels();
for(int i = 0; i < totalDePixeles; i++)
{
p = pixeles[i]; //Valor de un pixel
rojo = (0xff & (p>>16)); //Desplaza el entero p 16 bits a la derecha y aplica la operacion AND a los primeros 8 bits
verde = (0xff & (p>>8)); //Desplaza el entero p 8 bits a la derecha y aplica la operacion AND a los siguientes 8 bits
azul = (0xff & p) ; //Aplica la operacion AND a los siguientes 8 bits
promedio = (int) ((rojo+verde+azul)/3);
pixeles[i]=(0xff000000|promedio<<16|promedio<<8|promedio);
}
{
//JOptionPane.showMessageDialog((Component)null,"Error del sistema : "+e.getMessage(),"Error de Imagen",JOptionPane.OK_OPTION);
estado = false;
this.mensajeDeError = e.getMessage();
}
return estado;
}