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

Interfaces Graphiques en Java Discussion :

Adapter une image à un JLabel


Sujet :

Interfaces Graphiques en Java

  1. #1
    Invité
    Invité(e)
    Par défaut Adapter une image à un JLabel
    Bonjour.

    Comme vous l'aurez compris, j'ai un gros soucis pour adapter la taille d'une image à la taille de mon JLabel qui doit la contenir. Pour résumer, je souhaite que quand une image se trouve plus grande que mon jlabel, j'adapter celle-ci pour qu'elle tienne dans mon jlabel entièrement.
    J'ai trouvé quelques problèmes similaires sur le net mais sans succès.

    Quelqu'un aurait-il des propositions?

    Je précise que je connais Java mais je n'ai quasiment jamais utilisé les bibliothèques de manipulation d'image.

    Merci

  2. #2
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Voici une méthode pour redimensionner une image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static Image scaleImage(Image source, int width, int height) {
        BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g = (Graphics2D) img.getGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(source, 0, 0, width, height, null);
        g.dispose();
        return img;
    }
    Les paramètres "width" et "height" peuvent être calculées de différentes manières.
    En voici deux:
    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
    //avec un facteur (<1 pour rétrécir, >1 pour agrandir):
    public static Image scaleImage(final Image source, final double factor) {
        int width = (int) (source.getWidth(null) * factor);
        int height = (int) (source.getHeight(null) * factor);
        return scaleImage(source, width, height);
    }
    //avec une taille en pixels (=hauteur si portrait, largeur si paysage):
    public static Image scaleImage(Image source, int size) {
        int width = source.getWidth(null);
        int height = source.getHeight(null);
        double f = 0;
        if (width < height) {//portrait
            f = (double) height / (double) width;
            width = (int) (size / f);
            height = size;
        } else {//paysage
            f = (double) width / (double) height;
            width = size;
            height = (int) (size / f);
        }
        return scaleImage(source, width, height);
    }
    Voici un exemple d'utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ImageIcon icon = new ImageIcon(getClass().getResource("Picture3.jpg"));
    //Image zoom = scaleImage(icon.getImage(), 0.5d);//facteur
    Image zoom = scaleImage(icon.getImage(), 150);//taille en pixels
    Icon iconScaled = new ImageIcon(zoom);
    final JLabel ball = new JLabel(iconScaled);

  3. #3
    Candidat au Club
    Homme Profil pro
    College Ahuntsic Montreal
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : College Ahuntsic Montreal
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Merci testé et fonctionnel
    Merci beaucoup!

Discussions similaires

  1. Div avec background dont la taille s'adapte à une image
    Par rednekk dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 27/08/2010, 17h57
  2. [Toutes versions] Adapter une image à la taille de la diapositive
    Par aalex_38 dans le forum VBA PowerPoint
    Réponses: 5
    Dernier message: 01/04/2010, 18h47
  3. Adapter une Image à la taille de tous les écrans
    Par spectre666 dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 19/10/2008, 19h47
  4. Adapter une image
    Par pseudomh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 25/08/2006, 11h04
  5. Adapter une image sur un bouton...
    Par Arnaud F. dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 24/04/2006, 18h33

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