Bonjour, bonjour...
Je rencontre quelques problèmes à insérer des BufferedImage dans SQL.
En faite jy parvient très bien en en procédant comme ça :
FileOutputStream out = new FileOutputStream( url );
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( out );
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam( pBufImage );
param.setQuality( 0.5f, false );
encoder.setJPEGEncodeParam( param );
encoder.encode( pBufImage );
out.close();
File monFile1 = new File( url );
FileInputStream istreamImage1 = new FileInputStream( monFile1 );
PreparedStatement ps = connexion.prepareStatement( "insert into x (Img_1) values ( ? ) " );
ps.setBinaryStream( 1, istreamImage1, (int) monFile1 .length() );
Donc si on résume je fais un FileOutputStream et le sauve au format JPEG en local, puis le récupère sous forme de File pour ensuite le transformer en FileInputStream pour enfin l'envoyer par la méthode setBinaryStream de PreparedStatement .
J'essaye donc de simplifier cette procèdure.
Pour faire plus court jai essayé un truc comme ça :
ImageInputStream streamImage = ImageIO.createImageInputStream( this.bufImage );
PreparedStatement ps = connexion.prepareStatement( "insert into x (Img_1) values ( ? ) " );
ps.setBinaryStream( 1, streamImage , (int) streamImage.length() );
Mais bien entendu c'est pas si simple
Si qqun connait la soluce, il sera mille fois remercié !!!
Afficher la suite