当通过Java.jar(Raspberry Pi-Raspbian)拍摄时,Gphoto2无法保存图像



我正在编写一个GUI应用程序,该应用程序使用Raspbian中的gphoto2包从相机拍摄图像。当我手动在终端中输入命令gphoto2 --capture-image-and-download时,相机会拍摄图像并将其保存到当前文件夹中。然而,当我通过Java代码中的按钮执行相同的命令时,相机会拍摄图像,但不会保存。bash的重定向输出显示图像保存到相机(我可以处理),但图像既没有保存到相机也没有保存到当前目录,事实上,它看起来根本没有保存。

这是按钮代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    Runtime com = getRuntime();
    try {
        //Reset USB Device to prevent warnings
        Process mand = com.exec("../../../usbreset /dev/bus/usb/001/005");
        //Capture image
        Process get = com.exec("gphoto2 --capture-image-and-download");
        Send Bash output(s) to text area
        BufferedReader in1 = new BufferedReader(new InputStreamReader(mand.getInputStream()));
        BufferedReader in2 = new BufferedReader(new InputStreamReader(get.getInputStream()));
        String inputLine1;
        while ((inputLine1 = in1.readLine()) != null) {
            msgArea.append(inputLine1 + "n");
        }
        in1.close();
        String inputLine2;
        while ((inputLine2 = in2.readLine()) != null) {
            msgArea.append(inputLine2 + "n");
        }
        in2.close();

    } catch (IOException ex) {
        Logger.getLogger(Home.class.getName()).log(Level.SEVERE, null, ex);
    }
}          

我不知道问题是出在我的bash命令还是Java代码中。我在相机中有卡和没有卡的情况下都尝试过,也尝试过为图像指定文件名,但都无济于事。我不确定这是否重要,但Pi是通过PuTTY ssh控制的,X11在Debian笔记本电脑上转发。Java是用Netbeans 8编写的。GPhoto2是2.4.14版本,相机是佳能EOS1100D,尽管我怀疑最后一个事实超出了要求。

如果有人能帮忙,我将不胜感激——这是我大学最后一年项目的重要组成部分,所以我必须尽快解决!

提前感谢

Guy

好的,我已经回答了我自己的问题。

bash的输出只发送到图片拍摄时为止。在那之后,终端输出没有被发送,所以我错过了一个错误,一个Permission Denied jobbie。因此,解决方案只是在gphoto2命令之前添加一个sudo。简单的解决方案最终却令人沮丧!

相关内容

  • 没有找到相关文章

最新更新