Já dei uma boa pesquisada no guj e em outros cantos da rede, mas até agora não encontrei nada que pudesse me ajudar.
A única coisa que encontrei até agora foi esse código aqui mesmo no guj
public byte[] ReadImageAsByteArray (String filename) throws IOException{
byte []buffer = new byte[1024];
InputStream is = this.getClass().getResourceAsStream( filename ); // nessa linda ta dando NullPointerException
ByteArrayOutputStream out = new ByteArrayOutputStream();
while (is.read( buffer ) != -1) {
out.write( buffer );
}
return out.toByteArray();
}
O primeiro problema é que ele da NullPointerException e eu nao tenho nem como testar
e o segundo problema é que eu preciso converter uma imgagem do tipo Image e não um arquivo
alguem poderia me passar um código, ou algum link que me leve a solução deste problema? mesmo que seja um código que converta arquivos em bytes para que eu possa fazer testes!
Tinha colocado uma mensagem, mas decidi mudar.
É o seguinte:
BufferedImage imagem = ImageIO.read(new File("PathDaImagem.jpg")); // crio a imagem
ByteArrayOutputStream baos = new ByteArrayOutputStream(); // crio um OS de array de bytes
ImageIO.write(imagem, "jpg", baos); // Uso o write pra escrever os dados da imagem no OS do array de bytes
baos.toByteArray(); // pego o array de bytes
Legal Brito =)
Só que ainda assim no meu caso isso não funcionaria. Porque eu não tenho a imagem em disco. A minha imagem vem de uma requisição http onde eu recebo a imagem em uma stream que converto para um Image.
Mas de qualquer forma agora eu já consegui uma solução perfeita! Consegui fazer um método onde eu passo um Image e ele me devolve o array de bytes do Image =D