2015-09-23 2 views
0

У меня проблема. Мне нужно сохранить объект java BufferedImage в String. Преобразуйте это String в приложение Android в Bitmap. Как я могу это достичь? Или, может быть, вы можете порекомендовать мне другой способ передачи информации об изображении в формате String.BufferedImage в растровое изображение Android

public static String encodeToString(BufferedImage image, String type)   { 
    String imageString = null; 
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); 

    try { 
     ImageIO.write(image, type, bos); 
     byte[] imageBytes = bos.toByteArray(); 
     imageString = Base64.getEncoder().encodeToString(imageBytes); 
     bos.close(); 
    } catch (IOException e) { 
     log.error("Can't encode to String"); 
    } 
    return imageString; 
} 
+0

почему 'String' ?? вы не используете 'byte []' ?? –

+0

Мне нужно сохранить эту строку в формате xml, как поле. –

ответ

1

Base64 кодирование и декодирование изображений с использованием Java 8:

public static String imgToBase64String(final RenderedImage img, final String formatName) { 
final ByteArrayOutputStream os = new ByteArrayOutputStream(); 
try { 
    ImageIO.write(img, formatName, Base64.getEncoder().wrap(os)); 
    return os.toString(StandardCharsets.ISO_8859_1.name()); 
} catch (final IOException ioe) { 
    throw new UncheckedIOException(ioe); 
} 
} 

public static BufferedImage base64StringToImg(final String base64String) { 
    try { 
     return ImageIO.read(new ByteArrayInputStream(Base64.getDecoder().decode(base64String))); 
    } catch (final IOException ioe) { 
     throw new UncheckedIOException(ioe); 
    } 
} 

надежда так будет работать, наслаждаться код :)

+0

Мне нужно расшифровать в формате растрового изображения Android –

+0

@see http://alvinalexander.com/java/jwarehouse/android/tools/layoutlib/bridge/src/android/graphics/Bitmap.java.shtml –

+0

BufferedImage bufferedImage = ImageIO. чтения (файл); Изображение изображения = SwingFXUtils.toFXImage (bufferedImage, null); myImageView.setImage (изображение); –

Смежные вопросы