Показать изображение из схемы 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"));
Другие вопросы по тегам