Projet gus05 de développement Java
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

Transformer un objet Icon en Image

Aller en bas

Transformer un objet Icon en Image Empty Transformer un objet Icon en Image

Message  Gus Ven 17 Juin - 13:47

A quoi cela peut-il servir de transformer un objet Icon (javax.swing.Icon) en objet Image (java.awt.Image) ?
Lorsqu'on dispose d'une icône qui n'est pas une ImageIcon et qu'on souhaite l'utiliser dans une JFrame.
Ou bien lorsqu'on souhaite pouvoir enregistrer cette icône dans un fichier...

Voici donc une petite entité de transformation bien utile pour récupérer l'image correspondant à une icône.
gus.image.icontoimage

Code:
package gus05.entity.gus.image.icontoimage;


import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Transparency;
import java.awt.image.BufferedImage;

import javax.swing.Icon;
import javax.swing.ImageIcon;

import gus05.framework.core.Entity;
import gus05.framework.features.Transform;


public class IconToImage implements Entity, Transform {

    public String getName()         {return "gus.image.icontoimage";}
    public String getCreationDate()      {return "2011.06.17";}


    public Object transform(Object obj) throws Exception
    {return iconToImage((Icon)obj);}
   
   
    private BufferedImage createImage(int w, int h)
   {
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsConfiguration gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
      return gc.createCompatibleImage(w,h,Transparency.BITMASK);
   }
   
   
   private Image iconToImage(Icon icon)
   {
      if(icon==null) return null;
       if(icon instanceof ImageIcon) return ((ImageIcon)icon).getImage();

      int w = icon.getIconWidth();
      int h = icon.getIconHeight();
      
      BufferedImage image = createImage(w,h);
      Graphics2D g = image.createGraphics();
      icon.paintIcon(null,g,0,0);
      g.dispose();
      return image;
   }
}
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum