Cómo convertir los colores a escala de grises en java con solo java.io. *; ¿biblioteca?
Bueno, tengo esto ... porque en mi lugar lo solicitan así ... Bueno, tengo esto: // algunas variables y comentarios son un código posible ... Pero quiero decir que no sé cómo hacerlo exactamente, yo encontrado en internet que para convertir R es el byte está en * 0.21 con G es * 0.71 supongo y azul es * 0.07. Solo puedo usar esa biblioteca java.io. *; y estoy trabajando con imágenes en formato BMP de 1024 x 768, si puedes ayudarme o quieres que sea más específico, por favor, dímelo. No sé si tengo que agregar otras variables, sacar algunas o modificar, por favor, ayúdame. No soy tan nuevo en este idioma, pero no soy un experto. El código está aquí:
import java.io. *;
clase pública escala de grises {
FileInputStream image;
FileOutputStream img;
byte[] datos;
int i;
int cont;
public Grayscale(String nombre)throws Exception{
this.image = new FileInputStream(nombre);
this.img = img;
this.datos = new byte[image.available()];
this.i = 54;
this.cont = 1;
}
public void gray()throws Exception{
image.read(datos);
img = new FileOutputStream("grayscale.bmp");
while(i<datos.length){
if(cont == 1){
datos[i] = datos[i] ;//* 0.21;
cont++;
} else if(cont == 2){
datos[i] = datos [i] ;//* 0.71;
cont++;
} else if(cont == 3){
datos[i] = datos[i] ;//* 0.07;
cont++;
}else{
cont = 1;
}
i++;
}
img.write(datos);
}
}