我有一个二维矩阵,它存储 0 到 1 之间的值。我想将这些值绘制为灰度级别。
如果值为 1,则应绘制为白色。如果值为 0,则应绘制为黑色。
我将如何在java中做到这一点?
我尝试了 classes: Color
and BufferedImage
,但我无法弄清楚。
要创建图像并设置像素:
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。