É possível converter um java.awt.Image ou um ImageInputStream para um InputStream? Engraçado que apesar do nome, ImageInputStream e InputStream não são compatíveis…
Converter java.awt.Image para InputStream
F
3 Respostas
M
Sim é possível. Para que você quer fazer isso?
Procure por ImageIO, ByteArrayOutputStream, ByteArrayOutputStream.toByteArray() e ByteArrayInputStream.
F
Eu tinha um utilitário de manipulação de imagem que esperava um ImageInputStream, não um Image, mas eu só tinha o Image. Na verdade meu problema era manipular um Bitmap em Java. Não sei porque não lia o arquivo corretamente, mas descobri uma API da Sun(Oracle ? :D) que me salvou. http://java.sun.com/javase/technologies/desktop/media/jai/
_
Segue abaixo código para caso alguém encontre o artigo via google =)
Image image = ...
BufferedImage bi = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics bg = bi.getGraphics();
bg.drawImage(image, 0, 0, null);
bg.dispose();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "jpg", baos );
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
InputStream is = new ByteArrayInputStream(imageInByte);
Criado 6 de fevereiro de 2010
Ultima resposta 17 de jan. de 2013
Respostas 3
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo