private String getImageBase64ByUrl(String imageUrl) {
try {
URL url = new URL(Objects.requireNonNull(imageUrl));
InputStream inputStream = url.openStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
byte[] imageBytes = outputStream.toByteArray();
String base64Image = Base64.getEncoder().encodeToString(imageBytes);
inputStream.close();
outputStream.close();
return "data:image/jpeg;base64," + base64Image;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
需要的图片 url 是能在浏览器地址栏输入后直接访问的,以此通过流来读取数据。(另外代码中使用的Base64类是 java.util 包下的)