这是我的片段。我的原始数组是 a[3][][]
并且 rgb 值存储在那里我想从它们创建一个新图像。以下代码的最后一行导致找不到符号。
BufferedImage img=newBufferedImage(bi.getWidth(),bi.getHeight(),BufferedImage.TYPE_INT_RGB);
for(int r=0; r<bi.getHeight(); r++)
for(int c=0; c<bi.getWidth(); c++)
{
int red=a[0][r][c];
int green=a[1][r][c];
int blue=a[2][r][c];
int rgb = (red << 16) | (green << 8) | blue;
img.setRGB(c, r, rgb);
}
ImageIO.write(img,"jpg", "abc.jpg");
有什么建议吗?
最佳答案
您向 ImageIO.write()
传递了错误的参数。来自 the docs ,这里有 3 种可能性:
write(RenderedImage im, String formatName, File output)
write(RenderedImage im, String formatName, ImageOutputStream output)
write(RenderedImage im, String formatName, OutputStream output)
如果你想将图像写入一个名为 abc.jpg
的文件,也许可以尝试:
ImageIO.write(img, "jpg", new File("abc.jpg");
关于java - 在java中从像素数组创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584521/