1

我有 3 个相同大小的 2D 矩阵(比如说 200 行和 300 列)。每个矩阵代表三种“基本”颜色(红色、绿色和蓝色)之一的值。矩阵的值可以在 0 到 255 之间。现在我想组合这些矩阵以将它们显示为彩色图像(200 x 300 像素)。我怎样才能在 JAVA 中做到这一点?

4

1 回答 1

3

首先:您可以从此值创建颜色,例如:

Color c = new Color(red, green, blue, alpha);

注意:

  1. 红色是Matrics1的值
  2. 绿色是Matrics2的值
  3. 蓝色是 Matrics3 的值

然后创建新图像:

BufferedImage image = new BufferedImage(200/*Width*/, 300/*height*/, BufferedImage.TYPE_INT_ARGB);

然后在图像上设置值像这样:

image.setRGB(x, y, c.getRGB());

这是此步骤的代码,请尝试:

public class Main {

    public static void main(String args[]) throws IOException {
        int red[][] = new int[200][300];
        int green[][] = new int[200][300];
        int blue[][] = new int[200][300];
        /////////////////set this matrices 

        BufferedImage image = new BufferedImage(200/*Width*/, 300/*height*/, BufferedImage.TYPE_INT_ARGB);

        for (int i = 0; i < 200; i++) {
            for (int j = 0; j < 300; j++) {
                Color c = new Color(red[i][j], green[i][j], blue[i][j]);
                image.setRGB(i, j, c.getRGB());
            }
        }
        ImageIO.write(image, "jpg", new File("/////////////image path.jpg"));
    }
}
于 2013-03-10T12:50:04.373 回答