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 :

[IMAGE] Comment obtenir hauteur largeur d'une image ??


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut [IMAGE] Comment obtenir hauteur largeur d'une image ??
    Je cherche comment obtenir la hauteur et la largeur d'une image !! ça parait tout bete mais j'y arrive pas...(je débute un peu )

    Voilà ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Image img = Toolkit.getDefaultToolkit().createImage("./img/img.jpg");
    int widthImg = img.getWidth();
    int heightImg = img.getHeight();
    Mais ça me sort une erreur au 2 dernières lignes et je ne sais pas comment l'enlever, si qqun peut me dire aussi a quoi ça sert ImageObserver ??

    Merci

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Coucou,

    Citation Envoyé par pouillou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Image img = Toolkit.getDefaultToolkit().createImage("./img/img.jpg");
    int widthImg = img.getWidth();
    int heightImg = img.getHeight();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Image img = ImageIO.read(new File("img/img.jpg"));
    int widthImg = img.getWidth();
    int heightImg = img.getHeight();
    Mieux vaut utiliser ImageIO plutot que le toolkit par défaut..
    Si encore erreur, copie colle la nous, nous ne sommes pas devins

    mavina

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 26
    Points
    26
    Par défaut image
    le code suivant ne marche pas (filePath un String du chemin du fichier image)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Image img = ImageIO.read(new File(filePath));         
    int widthImg = img.getWidth();
    int heightImg = img.getHeight();
    au 2 dernières lignes j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The method getWidth(ImageObserver) in the type Image is not applicable for the arguments ()
    J'ai pas mal cherché, pas de réponses satisfaisantes, je ne sais plus quoi faire, pourtant il n'y a que 3 lignes........................

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Il n'y a pas de méthode getWidth() et getHeight() sans paramètre dans la classe Image : ces méthodes attendent un ImageObserver en paramètre mais tu peux utiliser null :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Image img = ImageIO.read(new File(filePath));         
    int widthImg = img.getWidth(null);
    int heightImg = img.getHeight(null);
    L'interface ImageObserver permet d'être tenu informé du chargement de l'image.
    En effet lorsque tu charges une image avec le Toolkit en réalité l'image n'est pas chargé de suite, mais seulement lorsque tu en as besoin (ce principe permet d'améliorer un peu le chargement des Applets, puisque ton code continue à s'exécuter pendant que les images sont téléchargé en tâche de fond...

    Ainsi plusieurs méthodes qui travaillent sur des images attendent un ImageObserver, et renvoit une valeur bidon si l'image n'est pas encore chargé (-1 pour getWidth() et getHeight()).

    En général on se sert de cela pour rappeller la méthode plus tard . Par exemple tous les composant AWT et Swing implémente cette interface et rappelle paint() (ou paintComponent()) lorsque une image est chargé, cela permet de faire ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        protected void paintComponent(Graphics g) {
            g.drawImage(this.image, 0, 0, this);
        }
    Si l'image n'est pas chargé drawImage ne fera rien, mais enverra une notification à l'ImageObserver this qui rappelleta la méthode paintComponent() et donc cela affichera l'image...


    Maintenant tu n'est pas obligé d'utiliser ImageObserver, et en particulier si tu utilises ImageIO puisque cette classe charge l'image entièrement (tu ne recevra donc jamais de -1).

    a++

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/11/2011, 10h19
  2. [1.x] Connaitre la taille (hauteur/largeur) d'une image uploadé
    Par Malonix dans le forum Symfony
    Réponses: 11
    Dernier message: 08/07/2010, 12h09
  3. Réponses: 6
    Dernier message: 26/05/2010, 22h17
  4. Modification hauteur et largeur d'une image suite à un double-click sur une autre image
    Par LorenzoIlMagnifico dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/11/2009, 16h10
  5. comment positionner un tableau et une image côte à côte, tout en ayant une légende
    Par cecilebzh dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 17/03/2008, 16h01

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