Criar imagem apartir de byte[]

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!

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

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

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

Sim.

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

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.

funcionou ?

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

Mto obrigado pela ajuda!

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

Alguma dica?

Valeus!

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

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

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

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

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.