IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[Débutant]Probleme de Conversion byte[] BufferedImage


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [Débutant]Probleme de Conversion byte[] BufferedImage
    Bonjour

    je veux convertir un tableau de byte[] vers un BufferedImage, la conversion ne se fait pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //le result est le tableau de byte[]
    InputStream in = new ByteArrayInputStream(result);
    BufferedImage image = ImageIO.read(in);

    Si je vérifie le IntputStream je le trouve non null alors que le BufferedImage retourne un null çad la conversion n'a pas été faite.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu pex donner le stacktrace de l'erreur? Tu est sur que les byte[] sont dans un format pour lequel il existe bien un reader? ton byte[] est-il bien non-null?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Merci

    j'ai cru dés le début que le probléme réside dans la conversion mais j'ai bien localisé la faute. Ma faute est dans la partie serveur, le programme du serveur permet de lire l'image de la convertir en bytearray, j'ai essayé ce code mais ça n'a pas marché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    InputStream resource = this.getClass().getResource("c:/image.jpg");
    InputStream in = resource.openStream();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] buf= null;
    in.read(buf);
    bos.write(buf);
    return bos.toByteArray();
    Je suis vraiment bloqué.

    Merci d'avance pour votre aide.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    tu pex donner le stacktrace de l'erreur?

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    Voici ce que j'utilise, j'espère que cela t'aideras...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public static BufferedImage ConvertByteArrayToBufferedImage(byte[] arrayToConvert){
            BufferedImage image = null;
            if(arrayToConvert!=null){
                ByteArrayInputStream in=new ByteArrayInputStream(arrayToConvert);
                try {
                    image = ImageIO.read(in);
                } catch (IOException ex) {
                    Logger.getLogger(P.class.getName()).log(Level.SEVERE, null, ex);
                }
            }//else image = new BufferedImage(1, 1, BufferedImage.TRANSLUCENT);
            return image; 
        }
    Si tu as besoin d'une BufferedImage dans tous les cas tu remets le "else image = ..."

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    Et pour lire un fichier...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        /**
         * Récupère les données brutes d'un fichier
         * @param fichier fichier à lire
         * @return byte[] contenant les données brutes du fichier
         */
        public static byte[] lireFichier(File fichier){
            byte[] buf = null;
            if(fichier!=null){
                FileInputStream fis = null;
                try {
                    if(fichier != null){
                        fis = new FileInputStream(fichier);
                        buf = new byte[(int) fichier.length()];
                        fis.read(buf);
                    }            
                } catch (FileNotFoundException ex) {
                    P.erreur(ex);
                } catch (IOException ex) {
                    P.erreur(ex);
                } finally {
                    try {
                        fis.close();
                    } catch (IOException ex) {
                        P.erreur(ex);
                    }
                }
            }
            return buf;
        }

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Merci bien pour vos réponses.
    J'ai bien aboutit à la conversion.
    Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C++.NET] Conversion Byte*/Byte[]
    Par SteelBox dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 13/02/2005, 20h12
  2. [C#][débutant] Probleme avec un case
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2005, 13h45
  3. [débutante]Probleme de liens image dans JSP/Servlet
    Par celine31 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/11/2004, 16h51
  4. [Math][Integer] Problème de conversion
    Par deathwing dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/05/2004, 18h01
  5. Réponses: 11
    Dernier message: 02/09/2003, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo