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

Entrée/Sortie Java Discussion :

Creer un byte[] d'une imageIcon


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut Creer un byte[] d'une imageIcon
    Bonjour,
    J'ai une imageIcon que je crée tout simplement avec le constructeur ImageIcon("chemin de l'image"). Je veux maintenant créer une ImageIcon a partir du constructeur ImageIcon(byte[]). et je me demandé comment creer le byte[] d'une image (je veux dire a partir du chemin).
    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Par exemple en partant d'un java.io.BufferedInputStream (construit à l'aide d'un java.io.FileInputStream), puis contruire un byte[] avec la méthode "read(byte[] b, int off, int len)" en agrandissant au besoin le tableau de réception au fur et à mesure.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci Dinobogan,
    Mais t'aurais pas un exemple plus explicite....Enfin si tu peux...

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Réponse classique : la javadoc. Je sais que cette réponse ne fait jamais plaisir à quelqu'un qui débute, mais je n'ai pas le temps/pas envie de te coder du tout cuit. Et ce ne serait pas du tout contructif pour toi. Il faut quelques lignes pour faire ça. Commence à coder, et pose les questions si tu es vraiment bloquer.
    Bon courage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Merci dinobogan pour ton conseil, d'habitude c'est ce que je fais ,c juste que je suis un peu debordé et je voulais faire avancer les choses un peu plus vite...en fait je commence a trouver qlq elements de solution, je t'en fait part dés que c'est résolu...

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Par défaut
    Voila,
    J'ai la réponse dinobogan, enfin j'ai toujours besoin de ton aide pour verifier si elle ne pose pas de probléme coté performance, voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    byte[] bufferPhoto = null;
    File imgPhoto = new File(cheminPhoto);
    FileInputStream imgPhotoStr = new FileInputStream(imgPhoto);
    int longueurFichierPhoto = imgPhotoStr.available();
    bufferPhoto = new byte[longueurFichierPhoto];
    imgPhotoStr.read(bufferPhoto);
    Merci encore.

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Oui c'est ça
    Pour les performances, c'est bon car tu lis le bloc en entier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par dinobogan Voir le message
    Pour les performances, c'est bon car tu lis le bloc en entier.
    Non pas trop


    Déjà il ne faut pas utiliser available() pour initialiser un buffer. La valeur retourné par cette méthode indique le nombre de caractères accessible en lecture sans blocage. Mais la valeur retourné peut être inférieur à la taille réelle du fichier (en particulier pour de gros fichier ET/OU des disques "lents"). Il est préférable d'utiliser File.length()...

    Ensuite le read() ne garantit pas que la le buffer soit lu en entier et il faut faire une boucle pour s'en assurer (en vérifiant la valeur de retour de read()).

    Enfin il faut utiliser un try/finally pour fermer proprement le fichier à la fin de la lecture...


    a++

    PS : Pourquoi as-tu besoin de lire toi même le fichier et pourquoi ne pas utiliser le constructeur ImageIcon(String) ?

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

Discussions similaires

  1. [installation] creer un service pour une bdd
    Par Chafaq dans le forum Oracle
    Réponses: 1
    Dernier message: 25/01/2006, 13h31
  2. [wxpython] creer deux panel dans une frame
    Par hysah dans le forum wxPython
    Réponses: 3
    Dernier message: 27/12/2005, 19h21
  3. [C#] Comment créer un byte[] d'un ArrayList ?
    Par Royd938 dans le forum C#
    Réponses: 5
    Dernier message: 26/09/2005, 17h20
  4. [débutant] redimmensionner une ImageIcon
    Par calimero82 dans le forum 2D
    Réponses: 7
    Dernier message: 07/12/2004, 16h13

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