【问题标题】:Create bitmap or image row by row? or create bitmap/image from 2D array in Java逐行创建位图或图像?或从 Java 中的二维数组创建位图/图像
【发布时间】:2011-01-20 23:50:57
【问题描述】:

这相当于一个非常基本的编程问题,但基本上我正在创建一个由 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 值的二维数组,但我仍然不知道如何让它们以黑白形式写入图像像素。谁能帮我解决这个问题,或者让我指出正确的方向?请原谅这个基本问题,并提前感谢您的帮助。

【问题讨论】:

    标签: java bitmap javax.imageio


    【解决方案1】:

    在我看来,您可以使用 ArrayList 的 BitSet 类。

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

    至于写入图像,看看 java BufferedImage 类。

    【讨论】:

    • 我已经成功设置了 BufferedImage,但我不知道如何将其写入文件以便我可以看到图像。关于使用什么的任何想法?
    • 搞定了,谢谢你的帮助。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多