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

2D Java Discussion :

redimentionner une ImageIcon...


Sujet :

2D Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut redimentionner une ImageIcon...
    Bonjour,

    Je cherche comment redimentionner une image que je récupère via un JFileChooser (image = jf.getSelectedFile().getAbsolutePath()

    Si quelqu'un pourrait m'aider =)

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BufferedImage buffer = ImageIO.read(image);
    BufferedImage small = new BufferedImage(nouvelleLargeur, nouvelleHauteur, buffer.getType());
    Graphics g = small.getGraphics();
    g.drawImage(buffer, 0, 0, small.getWidth(), small.getHeight(), null);
    g.dispose();
    Et voila
    Romain Guy
    Android - Mon livre - Mon blog

  3. #3
    Membre actif Avatar de Lethal
    Profil pro
    Développeur Java
    Inscrit en
    Février 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2006
    Messages : 194
    Points : 227
    Points
    227
    Par défaut
    BufferedImage buffer = ImageIO.read(image);
    BufferedImage small = new BufferedImage(nouvelleLargeur, nouvelleHauteur, buffer.getType());
    Graphics g = small.getGraphics();
    g.drawImage(buffer, 0, 0, small.getWidth(), small.getHeight(), null);
    g.dispose();
    J'ai qque questions sur le bout de code que tu a donné.

    Comment obtiens tu "image" (url,fichier,...) ?
    Pourquoi fait tu un drawImage de buffer, ce n'est pas small qu'il faut afficher?
    Pourquoi fait tu g.dispose()? Je croyais que ca voulais dire au garbage collector qu'il peut faire son travail avec cet objet.

    Merci d'avance!

  4. #4
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Comment obtiens tu "image" (url,fichier,...) ?
    J'en sais rien, ca depend de ton application. La classe ImageIO a plusieurs surcharges de read() qui acceptent une URL, un fichier ou meme un InputStream. A toi de voir.

    Pourquoi fait tu un drawImage de buffer, ce n'est pas small qu'il faut afficher?
    Ce drawImage() dessiner buffer dans small mais en la reduisant. Le but ici est de creer dans small une copie plus petite de buffer.

    Pourquoi fait tu g.dispose()? Je croyais que ca voulais dire au garbage collector qu'il peut faire son travail avec cet objet.
    La signification de dispose() depend de l'API, pas du GC. Dans ce cas c'est important car Java2D alloue des ressources pour faire son travail et l'appel a dispose() permet de s'assurer qu'on les libere.
    Romain Guy
    Android - Mon livre - Mon blog

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Il peut etre egalement interessant de changer les indices de rendu (RenderingHints.KEY_INTERPOLATION) sur le graphics de destination (pour aggrandissement ou retrecissement) voir carrement de passer un filtre de type "sharpen" sur l'image finale (ConvolveOp avec ConvolveOp.EDGE_NO_OP et un kernel de type [0, -0.125f, 0, -0.125f, 1.5f, -0.125f, 0, -0.125f, 0] ou similaire*) surtout si on retrecit l'icon.

    *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    0,    -r/4, 0, 
    -r/4, +r,   -r/4, 
    0,    -r/4, 0
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Dessiner une ImageIcon
    Par sliderman dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 12/06/2007, 10h19
  2. [ImageMagick] Redimentionner une image sans l'enregistrer
    Par gunth dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/11/2006, 13h46
  3. Redimentionner une icone
    Par vanitom dans le forum MFC
    Réponses: 7
    Dernier message: 10/02/2006, 09h30
  4. redimentionner une image
    Par bourvil dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 08h42
  5. [débutant] redimmensionner une ImageIcon
    Par calimero82 dans le forum 2D
    Réponses: 7
    Dernier message: 07/12/2004, 15h13

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