Показать изображение из схемы URI данных на панели Java
У меня проблемы с интерпретацией этого вопроса.
Я получаю IMG в формате JSON, отформатированный в Base64, для веб-разработчиков это только сделать: "".
Как я могу сделать это на Java?
2 ответа
Решение
//JSON funtion
String cmd_getPhoto = so.cmd_getPhoto();
//for remove ":"data:image\/png;base64,"
String imageDataBytes = cmd_getPhoto.substring(cmd_getPhoto.indexOf(",") + 1);
//for decode
Base64 b = new Base64();
byte[] decode = b.decode(imageDataBytes.getBytes());
//create the stream
InputStream stream = new ByteArrayInputStream(decode);
try {
//set the stream for a bufferedImage and do what your will with it
BufferedImage bitmap = ImageIO.read(stream);
jLabel6.setIcon(new ImageIcon(bitmap));
} catch (IOException ex) { }
Вы можете использовать apache commons-codec для преобразования байтового массива. в base64 и из base64 в байтовый массив. На самом деле, вы можете использовать гуаву. Этот артефакт имеет библиотеки base64 и json. Просто добавьте com.google.guava в проект вашего maven.
Для создания изображения вы можете использовать:
InputStream in = new ByteArrayInputStream(yourbytearray);
BufferedImage bImageFromConvert = ImageIO.read(in);
ImageIO.write(bImageFromConvert, "jpg", new File("c:/yourimage.jpg"));