Wie konvertieren von Farben in Graustufen, in java nur mit java.io.*; Bibliothek?

Gut, ich habe diese.. Ursache in meinem Ort, den Sie verlangen es so,.. Nun habe ich dieses:
//einige Variablen und coments sind eine mögliche code.. Aber ich meine, ich weiß nicht, wie es zu tun genau, ich fand im internet, dass zu konvertieren, R ist das byte in *0.21 mit G *0.71 denke ich und blau ist * 0.07. Ich kann einfach die verwenden, die Bibliothek java.io.*; und ich arbeite mit BMP-format Bilder von 1024 x 768, wenn Sie mir helfen können, oder wollen Sie mich, um genauer zu sein bitte sagen Sie mir. ich weiß nicht, ob ich hinzufügen einer anderen Variablen oder zu nehmen, oder zu ändern, bitte helfen Sie mir. Ich bin nicht so neu in dieser Sprache, aber ich bin kein Experte. Der code ist hier:

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

}

Schreibe einen Kommentar