Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ImageIcon et fichier

3 réponses
Avatar
remy
bonjour

je voudrais écrire dans un fichier une
image par exemple gif a partir d'un obj ImageIcon

vous n'auriez pas une piste google ne me donne pas grand chose

en gros l'idée generale

ImageIcon img=new ImageIcon("....");
File f=new File(".....");

f.write(img);


le contexte un fichier zip
des obj ImageIcon avec comme source un fichier normal c:\....\mon.gif
et d'autres obj ImageIcon avec comme source un fichier zip directement
lu a partir du zip

et a l'arrivee je veux tout mettre dans un seul fichier zip
qui peut avoir le meme nom que l'une des sources "la zip"
par exemple quand je fais une edition et que je veux rajouter une
image au zip par exemple

dit differemment je voudrais transformer un obj ImageIcon
inputstream en gros


--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

3 réponses

Avatar
alexandre cartapanis
bonjour

je voudrais écrire dans un fichier une
image par exemple gif a partir d'un obj ImageIcon

vous n'auriez pas une piste google ne me donne pas grand chose

en gros l'idée generale

ImageIcon img=new ImageIcon("....");
File f=new File(".....");

f.write(img);


le contexte un fichier zip
des obj ImageIcon avec comme source un fichier normal c:....mon.gif
et d'autres obj ImageIcon avec comme source un fichier zip directement
lu a partir du zip

et a l'arrivee je veux tout mettre dans un seul fichier zip
qui peut avoir le meme nom que l'une des sources "la zip"
par exemple quand je fais une edition et que je veux rajouter une
image au zip par exemple

dit differemment je voudrais transformer un obj ImageIcon
inputstream en gros




Alors deux choses

Déjà ImageIcon implémente serializable, donc tu peux le sérialise r dans
un fichier. Attention, ça ne sera pas un fichier au format GIF ou JPEG
ou quoi, ça sera *seulement* l'objet java sérialisé.

Deuxièmement, il existe un package javax.imageio (dans java5, pour les
1.4 et inférieur je sais pas si ça existe). Apparemment il permet de
faire ce que tu désire, à savoir enregistrer une image dans un fichie r.
Je ne m'en suis jamais servi, regarde un peu l'API pour voir...

--
Alexandre CARTAPANIS - Responsable Système et Réseau
Email
Gsm. 06 72 07 51 55

Macymed SARL - 9 bvd Kraëmer 13014 Marseille France
Tél. 04 91 48 31 58 - Fax. 04 91 02 36 47
Web http://www.macymed.fr - Email

Avatar
Hervé AGNOUX
remy wrote:


je voudrais écrire dans un fichier une
image par exemple gif a partir d'un obj ImageIcon

vous n'auriez pas une piste google ne me donne pas grand chose



Si t'as pas trouvé avec Google, c'est que tu n'avais pas le bon mot clef !

Et le bon mot clef c'est... javax.imageio.ImageIO, classe qui te permettra
d'écrire et de lire quantité de fichiers images.

Par contre il est un petit peu pénible de passer d'une ImageIcon à un
BufferedImage, utile pour le ImageIO. En gros ça se passe comme ça :

buf = new BufferedImage(
icon.getIconWidth(),
icon.getIconHeight(),
BufferedImage.TYPE_INT_RGB);
graph = buf.createGraphics();
graph.drawImage(icon.getImage(), 0, 0, null);
graph.dispose();
ImageIO.write(buf, "png", output);
// ouf !


--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
remy
bingo et merci
une solution toujours pour google



public class MyImage extends ImageIcon
{
public MyImage(){
super();
}
public MyImage(ImageIcon image){
this(image.getImage());
}
public MyImage(Image image){
super(image);
}
public MyImage(byte[] imageData){
super(imageData);
}
public MyImage(String filename){
super();
ImageIcon image;
File f=new File(filename);
if(f.isFile()){
image = new ImageIcon(Toolkit.getDefaultToolkit().getImage(filename));
}else{
image = new ImageIcon(getClass().getResource(filename));
}
this.setImage(image.getImage());
}
public void write(OutputStream output)throws IOException
{
BufferedImage buf = new BufferedImage(
this.getIconWidth(),
this.getIconHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D graph = buf.createGraphics();
graph.drawImage(this.getImage(), 0, 0, null);
graph.dispose();
ImageIO.write(buf, "PNG", output);
}
}



--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy