如何在JAVA中以3个矩阵分别显示由RGB值表示的图像

如何在JAVA中以3个矩阵分别显示由RGB值表示的图像,java,image,image-processing,rgb,grayscale,Java,Image,Image Processing,Rgb,Grayscale,我有3个相同大小的2D矩阵(比如200行300列)。每个矩阵表示三种“基本”颜色(红色、绿色和蓝色)之一的值。矩阵的值可以介于0和255之间。现在我想将这些矩阵组合起来,将它们显示为彩色图像(200 x 300像素)。如何在JAVA中执行此操作?首先:您可以从以下值创建颜色: 颜色c=新颜色(红、绿、蓝、阿尔法) 请注意: 红色是矩阵1的值 绿色是矩阵2的值 蓝色是矩阵3的值 然后创建新图像: BufferedImage image=新的BufferedImage(200/*宽*/,300/*高

我有3个相同大小的2D矩阵(比如200行300列)。每个矩阵表示三种“基本”颜色(红色、绿色和蓝色)之一的值。矩阵的值可以介于0和255之间。现在我想将这些矩阵组合起来,将它们显示为彩色图像(200 x 300像素)。如何在JAVA中执行此操作?

首先:您可以从以下值创建颜色:

颜色c=新颜色(红、绿、蓝、阿尔法)

请注意:

  • 红色是矩阵1的值
  • 绿色是矩阵2的值
  • 蓝色是矩阵3的值
  • 然后创建新图像:

    BufferedImage image=新的BufferedImage(200/*宽*/,300/*高*/,BufferedImage.TYPE\u INT\u 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"));
        }
    }
    
    公共类主{
    公共静态void main(字符串args[])引发IOException{
    整数红色[][]=新整数[200][300];
    整数绿色[][]=新整数[200][300];
    整数蓝色[][]=新整数[200][300];
    /////////////////设置此矩阵
    BuffereImage=新的BuffereImage(200/*宽度*/,300/*高度*/,BuffereImage.TYPE_INT_ARGB);
    对于(int i=0;i<200;i++){
    对于(int j=0;j<300;j++){
    颜色c=新颜色(红色[i][j]、绿色[i][j]、蓝色[i][j]);
    setRGB(i,j,c.getRGB());
    }
    }
    image io.write(图像,“jpg”,新文件(“/////image path.jpg”);
    }
    }