我想使用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==
请帮助我。谢谢。
答案 0 :(得分:0)
byte[] bytes = new byte[(int)imagePath.length()];
这里你得到一个长度等于imagePath.length
的字节数组,最多只有几百个字节(imagePath
是your/path/to/image.png
...)
相反,您必须从image
下的imagePath
获取所有字节:
byte[] bytes = Files.readAllBytes(Paths.get(imagePath));
String encodedFile = Base64.getEncoder().encodeToString(bytes);