Criar imagem apartir de byte[]

12 respostas
rodrigo.heffner

Srs,

Com um FileOutputStream, crio um arquivo sem extensão formado por um stream de bytes. Gostaria de saber como transformar isso numa IMAGEM.JPG .
Caso facilite, tenho um getData(), que retorna a cadeia de bytes que forma esse arquivo.

Obrigado pela ajuda!

12 Respostas

nbluis

É só tu criar o arquivo com a extensão .jpg

Você ja ta fazendo a parte mais difícil.

rodrigo.heffner

vou tentar aqui. Dessa forma, eu consigo abrir o arquivo e já visualizar a imagem normalmente?

nbluis

Sim.

Se quem está enviando não passar por nenhum encoder nada sim.

rodrigo.heffner
File tempFile = File.createTempFile(“preview”, “ad” + currentAd.getAdNumber()+".JPG");

FileOutputStream fos = new FileOutputStream(tempFile);

fos.write(previewImage.getData());

fos.close();

previewImage.setPath(tempFile.getPath());

só adicionei o +".JPG" na primeira linha. Antes não tinha.

nbluis

funcionou ?

rodrigo.heffner

subindo a aplicação. Em 5 min respondo aqui.

Mto obrigado pela ajuda!

rodrigo.heffner

quando tentei abrir a imagem salva, apareceu só “No preview available” (e isso nao é uma imagem hehehe).

Alguma dica?

Valeus!

nbluis

De onde vem essa imagem ?
Ela vem no formato jpg mesmo ?

rodrigo.heffner

é o arquivo gerado apartir do meu FileOutputStream. Tá como JPG. Todos os meus parametros não são nulos.

nbluis

Tá mais o que que é esse previewImage?
De onde vem esses bytes da imagem ?

rodrigo.heffner

previewImage é um objeto de uma classe que tem os seguintes atributos:

private String name;

private int width;

private int height;

private String mimeType;

private byte[] data;

private ACImage thumbnail;

private String path;

o campo data vem de um BD

lucamartins

Bom, tente esse código fazendo as devidas alterações!

Image ret = null;
        int[] data = new int[w * h];
        System.arraycopy(data, 0, getData(), 0, w*h);
        MemoryImageSource membo = new MemoryImageSource(w, h, data, 0, w);
        ret =  Toolkit.getDefaultToolkit().createImage(membo);

Acredito que deve funcionar, caso não funcione vai ser preciso saber como essa imagem é serializada para ser salva no BD.

Criado 2 de maio de 2008
Ultima resposta 2 de mai. de 2008
Respostas 12
Participantes 3