我正在学习在java中使用BufferedImages,并试图创建一个动画,其中动画的每一帧都是数学上摆弄像素数据的结果。我只是在玩耍而已。最初我使用了一个索引的ColorModel,但我已经将它改变(以利用更多的颜色)到一个直接的ColorModel。但现在一个错误影响了说 -使用BufferedImages创建WritableRaster时,如何确保它与特定的ColorModel兼容?
光栅[email protected]是ColorModel的DirectColorModel不兼容:rmask = FF0000的GMask = FF00 bmask = FF AMASK = FF000000
我使用的代码创建的BufferedImage和WriteableRaster是在这里:
public void initialize(){
int width = getSize().width;
int height = getSize().height;
data = new int [width * height];
DataBuffer db = new DataBufferInt(data,height * width);
WritableRaster wr = Raster.createPackedRaster(db,width,height,1,null);
image = new BufferedImage(ColorModel.getRGBdefault(),wr,false,null);
image.setRGB(0, 0, width, height, data, 0, width);
}