当用作方法参数时,BufferedImage变黑

时间:2013-07-30 15:53:51

标签: java image bufferedimage

我有一段看起来非常简单的代码,我无法解决为什么它不起作用。

我有一个方法可以监听来自摄像头的图像更新,当它收到它们时,会调用另一段代码。

我的听众是:

public void imageUpdated(BufferedImage image) {
    if (null != video) {   
        video.setImage(image);
    }
    File outputfile = new File("savedingui.jpg");
    try {
        ImageIO.write(image, "jpg", outputfile);
    } catch (IOException e) {
        e.printStackTrace();
    }

愉快地将正确的图像保存到光盘。但是当我从setImage方法再次保存图像时(在侦听器代码的第3行调用)

public void setImage(BufferedImage image) {
    File outputfile = new File("savedorig.jpg");
    try {
        ImageIO.write(image, "jpg", outputfile);
    } catch (IOException e) {
        e.printStackTrace();
    }

它现在只能保存一个黑色的jpeg。但正确的黑色正方形。

关于最新情况的任何线索?

1 个答案:

答案 0 :(得分:1)

我无法使用以下来源(基本上从您的问题中复制)重现您的问题:

public static void imageUpdated(BufferedImage image) {
    setImage(image);

    File outputfile = new File("savedingui.jpg");
    try {
        ImageIO.write(image, "jpg", outputfile);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void setImage(BufferedImage image) {
    File outputfile = new File("savedorig.jpg");
    try {
        ImageIO.write(image, "jpg", outputfile);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) throws IOException {
    BufferedImage image = ImageIO.read(new File("test.jpg"));
    imageUpdated(image);
}

是否在其他地方使用相同的实例,例如相机在其中写入更新的数据?