2012-05-05 8 views
0

私は0から1の間の値を格納する2次元マトリックスを持っています。これらの値をグレースケールのレベルとしてプロットしたいと思います。0から1までの値をグレースケール画像に変換する(Java)

値が1の場合は、白で描画する必要があります。 値が0の場合は、黒で描画する必要があります。

私はどのようにそれをJavaで行いますか?

私はクラス:ColorBufferedImageを試しましたが、わかりませんでした。

答えて

1

画像を作成して、ピクセルを設定するには:

final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 

for (int y = 0; y < height; y++) 
{ 
    for (int x = 0; x < width; x++) 
    { 
    image.setRGB(x, y, color); 
    } 
} 

colorは、この場合、ARGBフォーマット(トップバイトはアルファであり、次いで赤色バイト、緑色バイト、青バイト)で、INTです。グレースケールを行っているので、R、G、Bを同じ値にします。アルファを必要としないので、そのトップバイトを0xFFに設定する必要があります。

参照:BufferedImage.setRGB()

+0

"あなたはグレースケールをやっているので、あなたがR、G及びBが同じ値になりたいです。"それは私が探していた答えでした。ありがとう! – coolscitist