В Java можно конвертировать BufferedImage в URI данных IMG? - PullRequest
6 голосов
/ 16 июня 2011

Я создал графическое изображение со следующим примером кода.

BufferedImage bi = new BufferedImage(50,50,BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g2d = bi.createGraphics();

// Draw graphics. 

g2d.dispose();
// BufferedImage now has my image I want.

На данный момент у меня есть BufferedImage, который я хочу преобразовать в URI данных IMG. Это возможно? Например ..

<IMG SRC="data:image/png;base64,[BufferedImage data here]"/>

Ответы [ 2 ]

12 голосов
/ 16 июня 2011

Не проверено, но что-то подобное должно сделать это:

ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(bi, "PNG", out);
byte[] bytes = out.toByteArray();

String base64bytes = Base64.encode(bytes);
String src = "data:image/png;base64," + base64bytes;

Существует множество различных реализаций кодека base64 для Java .У меня были хорошие результаты с MigBase64 .

2 голосов
/ 27 октября 2016

Вы можете использовать это решение , которое не использует никаких внешних библиотек. Коротко и чисто! Он использует библиотеку Java 6 (DatatypeConverter). Работал на меня!

ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageIO.write(image, "png", output);
DatatypeConverter.printBase64Binary(output.toByteArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...