我有 3 个相同大小的 2D 矩阵(比如说 200 行和 300 列)。每个矩阵代表三种“基本”颜色(红色、绿色和蓝色)之一的值。矩阵的值可以在 0 到 255 之间。现在我想组合这些矩阵以将它们显示为彩色图像(200 x 300 像素)。我怎样才能在 JAVA 中做到这一点?
问问题
3072 次
1 回答
3
首先:您可以从此值创建颜色,例如:
Color c = new Color(red, green, blue, alpha);
注意:
- 红色是Matrics1的值
- 绿色是Matrics2的值
- 蓝色是 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 回答