Knitter Posted June 19, 2008 at 01:45 PM Report Share #192169 Posted June 19, 2008 at 01:45 PM 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 😉 www.sergiolopes.eu Link to comment Share on other sites More sharing options...
CerelacK Posted July 16, 2008 at 09:50 AM Report Share #199180 Posted July 16, 2008 at 09:50 AM Boas Knitter, não sei se já resolveste o problema, mas ve este http://exampledepot.com/egs/java.awt.image/Image2Buf.html pode ser que te seja util. Link to comment Share on other sites More sharing options...
Knitter Posted July 16, 2008 at 09:55 AM Author Report Share #199185 Posted July 16, 2008 at 09:55 AM 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 🙂 www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now