我有一段看起来非常简单的代码,我无法解决为什么它不起作用。
我有一个方法可以监听来自摄像头的图像更新,当它收到它们时,会调用另一段代码。
我的听众是:
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。但正确的黑色正方形。
关于最新情况的任何线索?
答案 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);
}
是否在其他地方使用相同的实例,例如相机在其中写入更新的数据?