| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 08:32:50
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Ola pessoal,
Como posso converter um objeto Image em um byte[]?
Tenho o seguinte código:
gostaria de redimensionar esta imagem e depois recuperar os bytes da imagem redimensionada.
tentei redimensionar desta forma:
mas não sei como recuperar o byte[] da imagem redimensionada, e também não consigo garantir que isto está correto.
Alguém poderia me ajudar?
Vinny? vi que você já postou bastante a respeito aqui, mas não consegui resolver meu problema ainda....
Muito Obrigado
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:07:09
|
biro
JavaChild
Membro desde: 20/10/2009 08:17:15
Mensagens: 131
Offline
|
Utilize o método acima para transformar a imagem(ou qualquer outro arquivo) em um array de bytes...
E quanto ao redimensionamento, experimente redimensionar somente o componente que exibe a imagem(não tenho certeza se funciona para swing)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:07:54
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
Pode usar um byteArrayOutputStream para copiar os bytes.
;
Para processar a imagem, pode usar um WritableRaster. Essa classe te dá acesso completo aos pixel da imagem.
Ou se preferir fazer algo mais rústico, use o próprio vetor de bytes.
This message was edited 2 times. Last update was at 27/10/2009 09:10:44
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:19:58
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Ola pessoal, antes de mais nada obrigado por tentarem me ajudar.
biro o meu problema é justamente que não que ter que gravar a imagem redimensionada em disco para depois obter um File e recuperar o byte[].
juliocbq onde entraria a imagem que possuo em memória neste processo?
O que preciso realmente é algo do tipo:
como poderia implementar um método desse?
Obrigado mais uma vez a todos!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:22:46
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
ou pode ser mais específico quanto ao formato:
This message was edited 1 time. Last update was at 27/10/2009 09:24:14
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:27:50
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Ola juliocbq,
Me desculpe, mas não estou conseguindo entender... O método que você está propondo possui um parametro BufferedImage bi. Como posso obter este parametro a partir de um java.awt.Image?
Obrigado novamente!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:32:37
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
não use o awt.Image.
Use BufferedImage do swing, e ImageIO para copiar os dados. BufferedImage, e ImageIO são bem mais otimizadas.
Quando se vai trabalhar com imagens, deve-se pensar em performance também.
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:37:39
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Como você faria o seguinte:
- ler uma imagem do disco (exemplo: Foto.jpg)
- Redimensionar a imagem para 300,300
- Recuperar a imagem redimensionada e grava-la no banco de dados (aqui que eu preciso do byte[])
Basicamente o que preciso é isto.
O que estou fazendo é:
- leio o arquivo do disco;
- crio um byte[] da imagemOriginal;
**preciso redimensionar
** criar um novo byte[] da imagem redimensionada
- gravar no banco
O que está com ** é onde estou enrroscando.
Obrigado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 09:44:54
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
Aqui vou ler a imagem do banco.
Gravar e fazer o contrario.
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/10/2009 11:48:07
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
abaixo tem mais ou menos um exemplo do que estou precisando....
a linha
não está criando o ImageInputStream......
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2010 09:44:48
|
_Zell_
Debugger
![[Avatar]](/images/avatar/c46d911158c4a27e0c85eaf1a1266a33.jpg)
Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline
|
Julio, eu entendo sua posição sobre o ImageIO e BufferedImage mas quando a gente precisa manipular informações de desenho na imagem não tem como escapar muito de usar Image e Graphycs =)
A solução para o problema deste tópico eu postei nesse tópico aqui: http://www.guj.com.br/posts/list/0/58204.java#1169911
Deem uma olhada lá o/
Espero ter ajudado! Abraço!
|
|
|
 |
|
|