如何在JAVA中以3个矩阵分别显示由RGB值表示的图像
我有3个相同大小的2D矩阵(比如200行300列)。每个矩阵表示三种“基本”颜色(红色、绿色和蓝色)之一的值。矩阵的值可以介于0和255之间。现在我想将这些矩阵组合起来,将它们显示为彩色图像(200 x 300像素)。如何在JAVA中执行此操作?首先:您可以从以下值创建颜色:如何在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/*高
颜色c=新颜色(红、绿、蓝、阿尔法)代码>
请注意:
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”);
}
}