在Codename One项目中本地保存图像

时间:2013-08-21 16:26:08

标签: codenameone

我已按照此视频中创建相机捕获页面的教程进行操作:http://www.youtube.com/watch?v=nF4eqzVcsic

所以我的代码目前看起来像这样:

protected void onCamera_CaptureButtonAction(Component c, ActionEvent event) {
    String i = Capture.capturePhoto();
    if (i != null) {
        try {
            Image img = Image.createImage(i).scaledHeight(500);
            findCameraLabel().setIcon(img);

        } catch (Exception ex) {
        }
    }

}

我查看了CameraDemo应用程序,但似乎无法找到正在保存的任何文件。

我基本上只想将拍摄的照片保存在src文件夹中。

非常感谢任何帮助。 ARI

1 个答案:

答案 0 :(得分:7)

您的设备上不存在src文件夹,并且您无权访问“应用程序文件夹”(存储本机二进制文件的位置),否则您将能够在设备上更改可能安装病毒的应用程序

示例中的变量i是您可以在PC / Mac上看到的临时文件URL。您应该将其复制到本地文件或本地存储。

您可以使用FileSystemStorage打开图像的输入流,然后可以使用相同的类(例如,在应用程序主目录中)存储它,或者您可以使用Storage类来保存某处的形象。

E.g。您可以将图像复制到本地存储:

InputStream stream = FileSystemStorage.getInstance().openInputStream(i);
OutputStream out = Storage.getInstance().createOutputStream("MyImage");
Util.copy(stream, out);
Util.cleanup(stream);
Util.cleanup(out);