将javafx图像转换为/从base64转换

时间:2018-02-27 15:04:39

标签: java

我正在尝试将项目数据(图像,参数等)保存在保存文件中。我找到的方法是将所有数据合并到XML文件中,所以我决定将图像转换为Base64字符串。这里的障碍是我不知道如何从字符串中恢复图像。

File file = new File("image_path");
byte[] bytes = new byte[(int)file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(bytes); 
fis.close();
String ef = Base64.getEncoder().encodeToString(bytes);
Image image = new Image(file.toURI().toString());

当我尝试在同一个函数中使用解码器时,它总是打印错误。

byte[] ds = Base64.getDecoder().decode(ef);
if(ds==bytes) {
    System.out.println("True");
}else {
    System.out.println("false");
}

我在网站上找到的所有示例都已过时。那么在不丢失数据的情况下将字符串转换回文件的正确方法是什么。提前谢谢。

1 个答案:

答案 0 :(得分:3)

<div id="mainPage">
  <div class="bicycle" id="bicycleOriginal"></div>

  <p class="txt" id="mainTxt">DRAHTESEL</p>

  <div class="bicycle" id="bicycleFlipped"></div>
</div>

然后

Path path = Paths.get("...");
byte[] bytes = Files.readAllBytes(path);

或者使用更好的内存:

byte[] img = Base64.getDecoder().decode(bytes);

一个问题是历史上有几个Base64类,您需要 InputStream in = Base64.getDecoder().wrap(Files.newInputStream(path)); Image image = new Image(in);