2

这是我的片段。我的原始数组是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");

有什么建议么?

4

1 回答 1

1

您将错误的参数传递给ImageIO.write(). 从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");
于 2012-09-25T14:05:21.100 回答