So konvertieren Sie Farben in Graustufen in Java mit nur java.io. *; Bibliothek?

Nun, ich habe dies ... weil sie es an meiner Stelle so anfordern ... Nun, ich habe Folgendes: // Einige Variablen und Kommentare sind ein möglicher Code. Aber ich meine, ich weiß nicht genau, wie ich es machen soll im Internet gefunden, dass R zu konvertieren ist das Byte in * 0,21 mit G ist * 0,71 ich denke, und blau ist * 0,07. Ich kann nur die Bibliothek java.io benutzen. *; und ich arbeite mit Bildern im BMP-Format von 1024 x 768, wenn Sie mir helfen können oder wenn Sie möchten, dass ich spezifischer werde, sagen Sie es mir bitte. Ich weiß nicht, ob ich weitere Variablen hinzufügen oder etwas herausnehmen oder modifizieren muss, bitte hilf mir. Ich bin nicht so neu in dieser Sprache, aber ich bin kein Experte. Der Code ist hier richtig:

import java.io. *;

public class Graustufen {

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);
}

}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage