Jump to content
Sign in to follow this  
Knitter

Ler, redimensionar e exportar uma imagem para byte[]

Recommended Posts

Knitter

Preciso ler uma imagem do disco, jpg/jpeg, redimensionar essa imagem e convertê-la para um vector de byte para posteriormente enviar para um base de dados.

Actualmente, o problema, prende-se com carregar a imagem correctamente para fazer a conversão.

O código que estou a usar é:

Image img = Toolkit.getDefaultToolkit().createImage(file.getAbsolutePath()).
//new ImageIcon(img);

BufferedImage bimg = new BufferedImage(100, 75, BufferedImage.TYPE_INT_RGB);
bimg.getGraphics().drawImage(img,0,0,null);

ByteArrayOutputStream bas = new ByteArrayOutputStream();
ImageIO.write(bimg, "jpeg", bas);
byte[] data = bas.toByteArray();
bas.close();

Neste momento a variável data contém um vector de zeros, o que resulta numa imagem toda preta. Pelo que percebi a BufferedImage está completamente vazia, não tendo sido escrita para o seu espaço a imagem carregada.

Se repararem, deixei uma linha comentada, se a descomentar o código funciona, se a deixar comentada o código não funciona. Simplesmente não consigo, usando código correcto, duplicar o efeito e até agora a única solução que encontrei foi deixar lá essa linha, não comentada, para garantir que a imagem é carregada antes de a tentar escrever para a BufferedImage.

Agradecia algumas luzes neste problema que me está a dar mais trabalho do que devia ;)

Share this post


Link to post
Share on other sites
Knitter

Na verdade ainda estou à procura de uma solução melhor, a que tenho está a usar o truque de criar um objecto do tipo ImageIcon, como o código no link que me indicaste, o que não será o mais correcto, apesar de funcionar.

No entanto, estou numa fase de desenvolvimento do projecto, onde necessito de carregar a imagem num vector de bytes, que não me permite estar a pensar nestes pormenores.

Para já está a funcionar, mas não, o problema não está resolvido :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.