【问题标题】:SwingFXUtils shows NoClassFoundErrorSwingFXUtils 显示 NoClassFoundError
【发布时间】:2017-02-03 20:53:41
【问题描述】:

我已经尝试过使用该功能

SwingFXUtils.fromFXImage

引发 NoClassFoundError 异常。我如何在 Gluon 移动设备上保存图像?

【问题讨论】:

  • 您的用例是什么?该图像来自哪里?
  • 我使用了 PicturesService。 ImageView imageView = new ImageView(); Services.get(PicturesService.class).ifPresent(service -> { service.takePhoto(false).ifPresent(image -> imageView.setImage(image)); });所以我尝试使用这张图片中的 fromFXImage。
  • 好的,PictureService 返回一张图片(来自相机或画廊),您想将其保存到私人或公共存储位置吗?
  • 是的,正确。

标签: javafx gluon-mobile


【解决方案1】:

SwingFXUtils 也不支持任何与 Swing 相关的类。

根据您的 cmets,您正在使用 Charm Down PicturesService 从相机中检索图像并将其显示在 ImageView 控件上:

Services.get(PicturesService.class).ifPresent(service -> 
    service.takePhoto(false).ifPresent(imageView::setImage));

现在您想将该图像保存到设备上的私有/公共存储位置。

如果您检查API 中的takePhoto,它有一个savePhoto 参数,您可以使用它来保存图片:

// take photo and save picture
Services.get(PicturesService.class).ifPresent(service -> 
    service.takePhoto(true).ifPresent(imageView::setImage));

现在,如果您有一个look 了解这是如何实现的,您会在图片的外部存储下找到您的图片:

File photo = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "IMG_"+ timeStamp + ".jpg");

您可以在/sdcard/Pictures 下轻松访问该文件夹。

你也可以使用StorageServicegetPublicStorage("Pictures"),通过目录你可以检索到最后添加的文件:

File picturesDir = Services.get(StorageService.class)
            .flatMap(s -> s.getPublicStorage("Pictures"))
            .orElseThrow(() -> new RuntimeException("Error retrieving public storage")); 
for (File pic : picturesDir.listFiles()) {
        System.out.println("file " + pic.getName());
}

【讨论】:

  • 完美...感谢您再次帮助我!
  • 我想补充一个问题...您可以通过告诉takePhoto(true)来保存图片。真正的大问题是......保存图片的文件名是什么。文件夹中可能还有几十个其他人。在android下,文件名包含时间戳,但由于我不知道拍照时的确切时间戳,我只能检查文件夹中所有现有的图片并尝试找出最接近LocalDateTime.now()的图片?请不要告诉我这是我必须做的。
  • 您可以按最后一次修改对文件进行排序并获取第一个/最后一个吗?我不认为这有那么糟糕?
  • 好吧,我不想回答那个程序。谁说没有服务或任何并行运行的东西同时在该文件夹中创建文件(多线程)?如果在我拍照和之后尝试查找最新文件之间发生这种情况怎么办?我会弄错的。也许不太可能,但可能。
  • 当前 PicturesService API 的主要目的是检索 (JavaFX) 图像,并且您可以选择保存文件。如果您有其他需求,非常欢迎您扩展它并为开源project做出贡献。
猜你喜欢
  • 2021-01-15
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多