我正在学习在 java 中使用 BufferedImages,并试图创建一个动画,其中动画的每一帧都是在数学上摆弄像素数据的结果。我真的只是在玩。最初我使用的是索引 ColorModel,但我已将它(以利用更多颜色)更改为直接 ColorModel。但是现在突然出现一个错误说-
光栅 sun.awt.image.SunWritableRaster@29c204 与 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);
}