Sauvegarder en gif les icônes de fichier
Projet gus05 de développement Java :: Chantiers :: Chantiers graphiques :: Manipuler les objets Icon
Page 1 sur 1
Sauvegarder en gif les icônes de fichier
Comment récupérer les icônes de fichiers et les enregistrer au format gif ?
Je vous propose ici une petite entité qui prend en paramètre un objet File et se contente de créer juste à coté un fichier gif du même nom pour y enregistrer son icône.
Ceci se fait en deux étapes :
1/ obtenir l'icône :
La méthode iconToImage permettant de transformer notre icône en image (en conservant la transparence) comme nous avons pu le voir dans un précédent topic.
Voici le code source complet de l'entité gus.file.handle.extractfileicon
Je vous propose ici une petite entité qui prend en paramètre un objet File et se contente de créer juste à coté un fichier gif du même nom pour y enregistrer son icône.
Ceci se fait en deux étapes :
1/ obtenir l'icône :
- Code:
File file = (File)obj;
if(file==null || !file.exists()) return;
Icon icon = FileSystemView.getFileSystemView().getSystemIcon(file);
- Code:
File gifFile = new File(file.getAbsolutePath()+".gif");
BufferedImage image = iconToImage(icon);
ImageIO.write(image,"gif",gifFile);
La méthode iconToImage permettant de transformer notre icône en image (en conservant la transparence) comme nous avons pu le voir dans un précédent topic.
Voici le code source complet de l'entité gus.file.handle.extractfileicon
- Code:
package gus05.entity.gus.file.handle.extractfileicon;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.filechooser.FileSystemView;
import gus05.framework.core.Entity;
import gus05.framework.features.Give;
public class ExtractFileIcon implements Entity, Give {
public String getName() {return "gus.file.handle.extractfileicon";}
public String getCreationDate() {return "2011.06.30";}
public void give(Object obj) throws Exception
{
File file = (File)obj;
if(file==null || !file.exists()) return;
Icon icon = FileSystemView.getFileSystemView().getSystemIcon(file);
File gifFile = new File(file.getAbsolutePath()+".gif");
BufferedImage image = iconToImage(icon);
ImageIO.write(image,"gif",gifFile);
}
private BufferedImage iconToImage(Icon icon)
{
int w = icon.getIconWidth();
int h = icon.getIconHeight();
BufferedImage b = createImage(w,h);
Graphics2D g = b.createGraphics();
icon.paintIcon(null,g,0,0);
g.dispose();
return b;
}
private BufferedImage createImage(int w, int h)
{
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
return gc.createCompatibleImage(w,h,Transparency.BITMASK);
}
}
Sujets similaires
» Lire un fichier TTF
» Lire un fichier EML
» Copie de fichier
» Lire un fichier d'icône ICO
» Logiciels gratuits de copie de fichier
» Lire un fichier EML
» Copie de fichier
» Lire un fichier d'icône ICO
» Logiciels gratuits de copie de fichier
Projet gus05 de développement Java :: Chantiers :: Chantiers graphiques :: Manipuler les objets Icon
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus