【问题标题】:When reassigning color to pixels, all color is black将颜色重新分配给像素时,所有颜色都是黑色
【发布时间】:2015-06-03 01:24:59
【问题描述】:

简化代码:

public static void main(String[]args) throws Exception {
    BufferedImage img = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB);

    for (int i = 0; i < 512; i++) {
        for (int j = 0; j < 512; j++) {

            if (complex.getInfinite()) {
                Color newcol = new Color(100, 0, 0);
                img.setRGB(i, j, newcol.getRGB());
            }
            if (complex.getInfinite() == false) {
                Color newcol = new Color(0, 0, 100);
                img.setRGB(i, j, newcol.getRGB());
            }
        }
    }
    saveImage(img, new File("Julia.jpg"));
}

我的问题是,当我运行程序时,Julia.jpg 是一个全黑的图像。
我玩过我着色的像素数量,只有我着色的像素变黑。

我想知道问题是否在于我在生成图像时输入了错误的类型。

【问题讨论】:

  • 你为什么要检查if (complex.getInfinite()),然后是if (complex.getInfinite() == false)
  • complex 是什么?
  • complex 是复数类 Complex 的一个实例。这个想法是为 julia 分形创建一个图像,其中 x 维是实数值,y 维是虚数元素。如果输入的坐标旋转到无穷大(当插入 f(z) = z^2 + c 进行 255 次迭代时),则 getInfinity() 返回 True。
  • 你能展示一些相关的“复杂”代码吗?您包含的代码应该是最少的,但仍然是完整的。给定当前代码,很难看出为什么所有像素都是黑色的。
  • 我“怀疑”你的if条件都不满足

标签: java image colors


【解决方案1】:

改变

BufferedImage img = new BufferedImage(512, 512, BufferedImage.TYPE_INT_ARGB);

BufferedImage img = new BufferedImage(512, 512, BufferedImage.TYPE_INT_BGR);

更多详情:BufferedImage.TYPE_INT_BGR

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2015-01-28
    • 2022-12-03
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    相关资源
    最近更新 更多