Como converter cores para escala de cinza em java com apenas o java.io. *; biblioteca?
Bem, eu tenho isso .. porque no meu lugar eles pedem assim .. Bem, eu tenho isso: // algumas variáveis e comentários são um código possível .. Mas eu quero dizer, eu não sei como fazer isso exatamente, eu encontrado na internet que para converter R é o byte é em * 0,21 com G é * 0,71 eu acho que e azul é * 0,07. Eu só posso usar essa biblioteca java.io. *; e eu estou trabalhando com imagens em formato BMP de 1024 x 768, se você puder me ajudar, ou se você quiser que eu seja mais específico, por favor me diga. Eu não sei se eu tenho que adicionar outras variáveis ou tirar algumas, ou modificar, por favor me ajude. Eu não sou tão novo nesta língua, mas eu não sou um especialista. O código está bem aqui:
import java.io. *;
classe pública Grayscale {
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);
}
}