整数の配列から画像を設定するのに問題はありません。(整数バージョンのMemoryImageSourceは、はるかに単純なコンストラクターでインスタンス化できるため)。
私は試した:
ComponentColorModel model = new ComponentColorModel(
ColorSpace.getInstance(ColorSpace.CS_sRGB),
false,
false,
ComponentColorModel.OPAQUE,
DataBuffer.TYPE_BYTE);
ImageProducer ip = new MemoryImageSource(width, height, model, bytes, 0, width);
しかし、画像は空のようです(完全に透明)。画像データを使用してアルファを使用せずに試し、アルファチャネルを使用した場合と使用しない場合のモデルを作成しました。-画像は表示されません。
byte[]
に変換しint[]
てコンストラクターを使用しても、まったく問題はありません。
MemoryImageSource(int w, int h, int[] pix, int off, int scan)
...しかし、動作しません:
MemoryImageSource(int w, int h, ColorModel cm, int[] pix, int off, int scan)
カラーモデルが間違っている可能性がありますが、それでも、歪んだピクセルデータが表示されると予想されます(特にComponentColorModel.OPAQUEを使用)。