将值从0转换为1到灰度图像(Java)

时间:2012-05-05 08:58:50

标签: java grayscale

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

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

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

我尝试了这些课程:ColorBufferedImage,但我无法理解。

1 个答案:

答案 0 :(得分: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()