逐行创建位图或图像?或者用Java中的2D数组创建位图/图像

时间:2011-01-20 23:50:58

标签: java bitmap javax.imageio

这相当于一个非常基本的编程问题,但基本上我正在创建一个1和0的数组,我想表示单行的黑色(1)或白色(0)像素。这是我的代码,

private void runSim(){
        for(int j = 0; j< iterations; j++){
        for(int i = 0; i< rowLength; i++){
            newRow[i] = getNewCell(i);
        }
        oldRow = newRow;
        //draw new row
        printIteration();
    }
}
oldRow是一个int值数组(全0和1),表示我想要添加到位图图像底部的一行像素。理想情况下,有一些方法可以像这样逐行添加像素。如果没有,那么我可以创建这些int值的二维数组,但我仍然不知道如何将它们写成黑白图像像素。任何人都可以帮我解决这个问题,还是让我指出正确的方向?请原谅这个基本问题,并提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

在我看来,您可以使用ArrayListBitSet类。

http://download.oracle.com/javase/6/docs/api/java/util/BitSet.html

就写入图像而言,请查看java BufferedImage类。

答案 1 :(得分:0)

指针:从扩展JPanel中的VolatileImage的干净平板开始。覆盖其paintComponent()方法,使用Graphics2D在屏幕外绘制图像,并在Graphics对象上绘制()作为参数发送到paintComponent()的结果图像。使用paintOffScreen(Graphics2D)方法中的1-D或2-D像素数组,在需要时更新VolatileImage。希望这会有所帮助, - M.S。