0

我有一个二维矩阵,它存储 0 到 1 之间的值。我想将这些值绘制为灰度级别。

如果值为 1,则应绘制为白色。如果值为 0,则应绘制为黑色。

我将如何在java中做到这一点?

我尝试了 classes: Colorand BufferedImage,但我无法弄清楚。

4

1 回答 1

1

要创建图像并设置像素:

final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

for (int y = 0; y < height; y++)
{
  for (int x = 0; x < width; x++)
  {
    image.setRGB(x, y, color);
  }
}

color是一个 int,在这种情况下,ARGB格式为(顶部字节是 alpha,然后是红色字节、绿色字节、蓝色字节)。由于您正在做灰度,因此您希望 R、G 和 B 具有相同的值。您不想要 alpha,因此您应该将最高字节设置为 0xFF。

看:BufferedImage.setRGB()

于 2012-05-05T09:09:54.600 回答