Enregistrer une image dans une bdd

cs_coye Messages postés 18 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 18 avril 2009 - 20 janv. 2007 à 17:00
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 20 janv. 2007 à 22:32
Bonjour,

je code actuellement une application ejb 3 je souhaite enregistrer une image dans ma base mysql.
pour le moment la base est créer par des entity bean.
le type choisis pour les images est byte + annotation @lob

mon probléme c'est que je ne trouve pas de moyent pour convertir mon image en byte
j'ai essayer ça:
            FileImageInputStream fiis = new FileImageInputStream(file);
            Byte b = new Byte(fiis.readByte());

Mais dans mysql je me retrouve avec -1 à la place des données.
si vous avez une solution, ou un conseil je suis preneur :)

je vous remerci tous par avance

9 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 janv. 2007 à 17:10
Salut:



http://ricky81.developpez.com/tutoriel/java/jdbc/blob/




__________________________________________________________
A.B. :  Savoir c'est être heureux ...
0
cs_coye Messages postés 18 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 18 avril 2009
20 janv. 2007 à 17:16
merci [auteurdetail.aspx?ID=237842 Ombitious_Developper] avant de venir poster mon message j'ai parcouru de nombreux sites mais beaucoup parle de connexion JDBC comme celui là.
le probleme c'est que je n'utilise pas cette tecnologie mais celle des ejb3 donc pas de PreparedStatement.

je me demande si il est possible de convertir en Byte une image, un file, buffer ?
coye
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 janv. 2007 à 17:28
Salut:

Ceci permet d'obtenir les données d'une image et les mettre dans un tableau de int.




Image in = Toolkit.getDefaultToolkit ().getImage ("image.png");
       
int imgCols = in.getWidth();
int imgRows = in.getHeight();   
 
int[] pixels = new int[imgCols * imgRows];
PixelGrabber pg = new PixelGrabber(in, 0, 0, imgCols, imgRows, pixels, 0, imgCols);
 
try {
    pg.grabPixels();   
    System.out.println("Succés!");
}
catch (InterruptedException e) {
    System.err.println("InterruptedException");
}





__________________________________________________________
A.B. :  Savoir c'est être heureux ...
0
cs_coye Messages postés 18 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 18 avril 2009
20 janv. 2007 à 17:49
je me permet de te poser quelques questions sur cette technique que je ne connait pas !
sure le code:
int imgCols = in.getWidth(observer); -->attend un aobjet de type observer !! je n'utilise paut etre pas le bon type image ?

pg.grabPixels(); peut tu m'expliquer ce que sa fait stp ?

sur la fonctionalité :
si je stock dans ma base "int[] pixels" comment je fait le chemin envers pour afficher cette image

je sais sa fait beaucoup de question pour un samedi désolé
coye
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 janv. 2007 à 18:06
Salut:



// Comme tu vois getWidth et getHeight sont deux constructeur de la classe
// Image
int imgCols = in.getWidth ();
int imgRows = in.getHeight ();




// Donne le "signal" à l'objet de type Image ou ImageProducer pour commencer
// à delivrer ses pixels et attend que tous les pixels sont delivrer


pg.grabPixels ();




__________________________________________________________
A.B. :  Savoir c'est être heureux ...
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 janv. 2007 à 18:07
Salut:

Pardon pour l'erreur de frappe:



getWidth () et getHeight () sont deux méthodes de la classe Image.




__________________________________________________________
A.B. :  Savoir c'est être heureux ...
0
cs_coye Messages postés 18 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 18 avril 2009
20 janv. 2007 à 19:36
je te remerci j'ai pus trouver un peut plus simple

        File file = new File(MonImage.toString()); //création d'un fille d'une image
        try {
           
       FileImageInputStream fiimgs= new FileImageInputStream(file);


        byte[] bt = new byte[(int)file.length()]; // instanciation du tableau de byte avec la tail du file

 

        FileInputStream fis = new FileInputStream(file);
       
        fis.read(bt); //ecrire l'inputstream dans bt

    

  } catch (FileNotFoundException e1) {
          
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
      
       j'éspert que cela pourra en aider quelque un

coye
0
cs_coye Messages postés 18 Date d'inscription vendredi 30 mai 2003 Statut Membre Dernière intervention 18 avril 2009
20 janv. 2007 à 19:51
je me permet de revenir à la charge avec d'autre questions :)

est 'il possible de placer un objet Image dans un file ?

ou alors est il possible de placer un une image dans un buffer
faire des modification dans ce buffer
et recupérer ce buffer dans un file ?

pour vous expliquer mon but, je souhaite selectionner une image, en créer une icone.
et suite à ça enregisrtrer l'image original puis l'icone de cette image en byte[]

merci merci a vous ! je sais c'est samedi soir :)

coye
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
20 janv. 2007 à 22:32
Salut:

Oui un objet BufferedImage peut être sauvegarder dans un fichier:



BufferedImage bi = ...;
File f = new File ("image.png");
try {
    javax.imageio.ImageIO.write (bi, "png", f);
}
catch (Exceoption e) {
}



La classe BufferedImage est faite pour faire des modifications sur une image au contraire de la classe Image.



__________________________________________________________
A.B. :  Savoir c'est être heureux ...
0
Rejoignez-nous