无法使用java将图像转换为base64

时间:2018-05-26 13:23:48

标签: java base64

我想使用java将图像转换为base64 String

我尝试使用以下代码

FileInputStream fileInputStreamReader = new FileInputStream(imagePath);
byte[] bytes = new byte[(int)imagePath.length()];
fileInputStreamReader.read(bytes);

String encodedFile = Base64.getEncoder().encodeToString(bytes);

但是它会返回一个非常小的字符串,而不是图像。

请查看我得到的base64字符串。

iVBORw0KGgoAAAANSUhEUgAABQAAAANVCAIAAACoFcTeAACAAElEQVR42nydBXQcR9a2Y0saZtAwg2AkzYhlWZaZGRKjmJkZLMnMIDPJFCeO7YDtOEbZlswQ2mR590t2s5hv4VtKNqT/Vt2e1tjZ/X3e06en1dNdXV09rqfeW7df2BTt2A==

请帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

byte[] bytes = new byte[(int)imagePath.length()];

这里你得到一个长度等于imagePath.length的字节数组,最多只有几百个字节(imagePathyour/path/to/image.png ...)

相反,您必须从image下的imagePath获取所有字节:

byte[] bytes = Files.readAllBytes(Paths.get(imagePath));
String encodedFile = Base64.getEncoder().encodeToString(bytes);