nbluis 19 de out. de 2007
Como assim gerar uma imagem a partir de dados ??
Vai fazer algum relatório e salvar como imagem ?
Ou tu tem uma imagem salva em um banco de dados e quer colocar em um arquivo ??
webeverton 19 de out. de 2007
tenho uma imagem no banco e tenho que, hora gerar arquivo, hora só exibir na tela…
não tem relatórios.
Valeu…
nbluis 19 de out. de 2007
Gerar arquivo basta tu criar um arquivo e colocar o conteudo vindo do banco nele.
E mostrar, se for web tu nem precisa gerar o arquivo, pode fazer o servlet responder o conteudo da foto.
Assim bastaria tu criar uma tag apontando o src para o seu servlet.
Simples assim…
webeverton 19 de out. de 2007
então…
a idéia é a seguinte…
tenho dentro do meu banco as imagens desta forma:
789 CECDDDF6FE3467E00F0A1B9300D54306DDC43594030BDD9C3F5DE2A75819E02A8622E09BA7D29EE5FB0EB00F77812F2A2003A0D755E5839C0B0B2B8872640B0EA9F70401F0A14870B7532C40D509CFBD83EF44C2D83EC5B77787E088D4C38FD0EF593
Isso é o começo de uma delas… ela inteira é muuuuito maior… hehehe…
como converter isso pra uma imagem?
Valeu!
webeverton 22 de out. de 2007
Opa… voltei…
achei o seguinte código para gerar uma imagem à partir de dados no meu banco:
ResultSet result = null;
try {
Image img = Toolkit.getDefaultToolkit().createImage(
result.getBytes(0));
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Agora só falta salvar as imagens.
Alguma dica?
Valeu!
webeverton 22 de out. de 2007
Opa... cheguei no seguinte ponto...
não sei se estou certo, ou errado, mas catando no google, fóruns e por aí, foi onde cheguei....
/**
* @(#)Migracao.java
*
*
* @author
* @version 1.00 2007/9/10
*/
import java.io.* ;
import java.sql.* ;
import java.awt.Color ;
import java.awt.Graphics ;
import java.awt.Graphics2D ;
import java.awt.Image ;
import java.awt.RenderingHints ;
import java.awt.image.BufferedImage ;
import java.io.BufferedOutputStream ;
import java.io.FileOutputStream ;
import java.io.IOException ;
import java.net.URL ;
import java.awt.Toolkit ;
import javax.imageio.* ;
public class Execute {
public Execute () {
}
public static void main ( String args [] ){
int i = 0 ;
try {
GeraImagem gi = new GeraImagem ();
ResultSet rs = gi . retornaFiguras ();
while ( rs . next ()){
i ++ ;
System . out . println ( "Conteúdo do arquivo " + i + " \n--> " + hexaToString ( rs . getString ( "im_figura_fso" ). substring ( 0 , 200 )) + "\n\n" );
try {
Image img = Toolkit . getDefaultToolkit (). createImage ( rs . getBytes ( "im_figura_fso" ));
BufferedImage imagem = converteImagem ( img );
ImageIO . write ( imagem , "PNG" , new File ( "teste" + i + ".png" ));
} catch ( Exception e1 ) {
// TODO Auto-generated catch block
System . out . println ( "\n\nErro - > " + e1 + "\n\n" );
}
}
} catch ( Exception e ){
System . out . println ( "Ahá--- erroo -->>> " + e );
}
}
public static String hexaToString ( String hexa ) {
StringBuilder sb = new StringBuilder ();
char [] value = new char [ 2 ] ;
for ( int i = 0 ; i < hexa . length (); i ++ ){
int pos = i % 2 ;
value [ pos ] = hexa . charAt ( i );
if ( pos > 0 ) {
int intVal = Integer . parseInt ( new String ( value ), 16 );
char charVal = ( char ) intVal ;
sb . append ( charVal );
}
}
return ( sb . toString ());
}
public static BufferedImage converteImagem ( Image im )
{
BufferedImage bi = new BufferedImage ( im . getWidth ( null ), im . getHeight ( null ), BufferedImage . TYPE_INT_RGB );
Graphics bg = bi . getGraphics ();
bg . drawImage ( im , 0 , 0 , null );
bg . dispose ();
return bi ;
}
}
O erro é:
java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
Sei lá...
to perdidão já... hehehe
valeu