Alguém aqui sabe como faço essa conversão?
Não tem outra maneira de fazer essa conversão, sem ter que salvar no disco? eu só preciso desse FileInputStream pra salvar em um campo do tipo Blob no banco
As duas classes não tem nada a ver entre si, né carinha? O único jeito que eu vejo de fazer isso é gravar sua imagem em um arquivo temporário e depois abri-la.
Mas, o que você realmente está tentando fazer?
Eu preciso salvar uma imagem no banco
BufferedImage _imagem = ImageIO.read(imagem);
eu converto ela pra um BufferedImage, pra fazer algumas alterações nela com o Graphics2D, depois preciso salvar essa imagem no banco, em um campo do tipo blob.
O problema, carinha, é que você fixou que quer um arquivo de entrada: FileInputStream. Não dá pra você usar um InputStream, ao invés disto? Por que não?
ImageIO aceita OutputStream também no lugar de File, pra vc poder por exemplo enviar via Socket, salvar em ByteArrayOutputStream, etc
Você diz o BufferedImage receber um FileInputStream da imagem, ao invés de um File?
O problema, é que eu tenho um BufferedImage e preciso retornar pro meu DAO um FileInputStream.
O ImageIO.write não grava em um arquivo, mas sim em um outputstream. Então o que você precisa é escolher um outputstream que não grava no disco, como o byteArrayOutputStream.
O exemplo abaixo mostra como converter imagem em bytes.
http://www.mkyong.com/java/how-to-convert-bufferedimage-to-byte-in-java/
Aí você pode gravar esses bytes no banco por um preparedStatement.setObject(…)
Ou, pessoalmente estaria mais seguro com isso,
criar um ByteArrayInputStream com base nos bytes gerados e daí usar um preparedStatement.setBinaryStream(…)
Pessoal, eu to tendo um problema ao salvar no banco… pra vocês entenderem melhor…
essa é a imagem que eu crio no disco…
porém, quando eu insiro no banco, ela vem assim…
Nossa, ha 5 dias atrás eu já tinha postado isso:
Interessante como parece que a mesma dúvida se repete mais ou menos ao mesmo tempo no GUJ.
Quanto a sua imagem ser cortada. Você tem certeza que está gerando essa imagem com os espaços em branco no disco? Você pode postar como está fazendo para salvar e para carregar a imagem?