2

ピクセル値の1D配列があり、この方法で赤、緑、青を取得できます。

int rgb[] = new int[]
        {
            (argb >> 16) & 0xff, //red
            (argb >>  8) & 0xff, //green
            (argb      ) & 0xff  //blue
        };

作成したい画像の幅高さも知っています。したがって、合計で次のデータがあります。1)新しい画像の幅2)新しい画像の高さ3)ピクセル値の1次元配列。

上司からcreateRasterメソッドを使用するようにアドバイスされましたが、関数の引数を理解するのは困難です。簡単なコードを教えていただけますか?ありがとう。

4

2 に答える 2

1

この以前のSO投稿で述べたように:

public static Image getImageFromArray(int[] pixels, int width, int height) {
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            WritableRaster raster = (WritableRaster) image.getData();
            raster.setPixels(0,0,width,height,pixels);
            return image;
        }

パラメータが何であるかを理解するのに問題がある場合は、Javaドキュメントを参照してください。

于 2012-02-01T11:02:52.543 に答える
0

あなたは出来る:

 InputStream is = new ByteArrayInputStream(rgb);
 Image img = ImageIO.read(is);

rgbはバイト配列である必要があります。

于 2012-02-01T10:59:56.727 に答える