begin process at 2012 02 12 13:18:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Java2D et java3D

 > 

Transformer un JPanel en un fichier image.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transformer un JPanel en un fichier image.

vendredi 28 mai 2004 à 09:21:46 | Transformer un JPanel en un fichier image.

Kael_Kael


Bonjour,
je suis actuellement à la recherche d'un moyen de générer un fichier image à partir d'un jpanel (contenant des objets divers : jbutton, jtable, dessin ...). Sachant que mon JPanel peut-être plus grand que l'écran (il peut y avoir un ascenceur), je ne peut pas utiliser la méthode avec java.awt.Robot.

J'attend vos réaction avec impatience
vendredi 28 mai 2004 à 22:36:09 | Re : Transformer un JPanel en un fichier image.

Dobel

Salut

un bout de code pour écrire dans un png ou un jpeg le l'intégralité d'un JComponent qui se trouve dans un JScrollPane



BufferedImage image = new BufferedImage(
(int) (jScrollPane.getHorizontalScrollBar().getMaximum()),
(int) (jScrollPane.getVerticalScrollBar().getMaximum()),
BufferedImage.TYPE_INT_RGB);

monCompoDansJScrollPane.paint(image.getGraphics());

try {
//image png
(new File("essai.png")).createNewFile();
PNGImageWriter wri = new PNGImageWriter(new com.sun.imageio.plugins.png.PNGImageWriterSpi());
javax.imageio.stream.FileImageOutputStream wri2 = new javax.imageio.stream.FileImageOutputStream(new File("essai.png"));
wri.setOutput(wri2);
wri.write(image);
wri2.close();

//image jpg
(new File("essai.jpg")).createNewFile();
DataOutputStream sortie = new DataOutputStream(new FileOutputStream("essai.jpg"));
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(sortie);
enc.encode(image);
sortie.close();

}
catch (IOException ioe) {
ioe.printStackTrace();
}


voila;-p

A+
vendredi 28 mai 2004 à 23:00:05 | Re : Transformer un JPanel en un fichier image.

Dobel

allez hop, j'ai la forme !!
un ptit code pour du bmp en plus
(il n'y a rien à ma connaissance pour en créer aussi facilement que pour les png et jpg)

on a toujours image définie comme dans le code précédant



int resx = image.getWidth();
int resy = image.getHeight();

(new File("essai.bmp")).createNewFile();
DataOutputStream sortie = new DataOutputStream(new FileOutputStream("essai.bmp"));

//écriture de l'entête du fichier
sortie.write(0x42);
sortie.write(0x4D);
writeInt(sortie,resx*resy*3+54);
writeInt(sortie,0);
writeInt(sortie,54);
writeInt(sortie,40);
writeInt(sortie,resx);
writeInt(sortie,resy);
sortie.write(1);
sortie.write(0);
sortie.write(24);
sortie.write(0);
writeInt(sortie,0);
writeInt(sortie,resx*resy*3);
writeInt(sortie,2851);writeInt(sortie,2851);
writeInt(sortie,0);writeInt(sortie,0);

//ecriture des donnees
int sup = (resx*3) % 4;
for (int y=resy-1; y>=0; y--) {
for (int x=0; x<resx; x++) {
int rgb = image.getRGB(x, y);
sortie.write(rgb & 0xFF);
sortie.write((rgb>>8) & 0xFF);
sortie.write((rgb>>16) & 0xFF);
}
for (int j=0; j<sup; j++)
sortie.writeByte(0);
}
sortie.close();



où writeInt est la méthode suivante :

public void writeInt(DataOutputStream sortie, int n) {
try {
sortie.write((n) & 0xFF);
sortie.write((n>>8) & 0xFF);
sortie.write((n>>16) & 0xFF);
sortie.write((n>>24) & 0xFF);
}
catch (IOException IOE) {}
}

hop
A+

Dobeliou
[Qui pisse loin, ménage ses chaussures.]
mercredi 2 juin 2004 à 08:55:16 | Re : Transformer un JPanel en un fichier image.

Kael_Kael

Merci de ton aide, en fait, j'avais trouvé une méthode qui se rapproche beaucoup de ta première solution (celle de l'impression en png).
Mais j'ai un autre problème maintenant, le JPanel que je veux imprimer (qui se situe dans un JScrollPane) a un layout null. Cela me permet de placer au pixel près les objets dedans. Le problème vient du fait que lorsque mon JPanel est plus grand que le JScrollPane, les ascenceurs n'apparaissent pas.
En bilan, mon impression n'imprime que ce que j'ai d'afficher à l'écran (et non tout ce qui est contenu dans le JPanel).

Kael Kael


Cette discussion est classée dans : fichier, image, transformer, jpanel


Répondre à ce message

Sujets en rapport avec ce message

Scroll [ par MELISA ] Bonjour,Mon pb est le suivant:- je veux inserer un gif dans un JPanel, lui-même contenu dans un autre JPanel (je suis obligée d'utiliser un Panel au l outils graphiques pour fichier image ou tableau HTML [ par jmg02001 ] Sauriez vous si il y a des outils graphiques pour créer 1 histogramme ou une courbe sur, sur 1 fichier image ou 1 tableau HTML a partir d'une "List" J Raffraichissement..... [ par drizztoli ] Voila, j'ai une image posee en fond sur mon JPanel, mais mes boutons ajoutes a ce JPanel disparaissent derriere l'image et il n'apparaissent que lorsq URGENT (BMP et BufferedImage) [ par Geomaster ] Bonjour,J'ai réalisé un petit prog qui prend n'importe quelle image GIF ou JPEG et cree un fichier texte contenant les valeurs R, V et B de chaque pix Afficher une image dans une appli [ par ozielm ] MarcBonjour à tous, j'ai lu tous les sujets qui expliquaient comment afficher une image dans une appli mais voilà, je n'ai pas réussi à en faire march moteur 2D [ par bob82fr ] Lut tout le monde!J'ai un petit probleme...FAut que j'interprette un fichier en image...j'explquepar exemple dans mon ficher j'ai : 100001 Image dans JPanel cache mes boutons [ par Sw1tch ] Bonjour,ca doit surement être tout bete, mais j'ai un petit problème.J'ai créé un JLabel qui à la meme taille que mon JPanel. J'y ai affecté un ImageI Ecrire un fichier PostScript a partir Image 2D JAV [ par ericjava ] Salut ,Je suis nouveau sur le forum. Gros souci dans le cadre de mon job. Merci par avance de m'aider.Je fais du JAVA 2D, j'ai donc une image bufferis Graphics g avant affichage [ par magat ] voila j'ai réalisé une appli de défillement d'image style powerpointmais j'ai placé mes image dans des jpanel car j'intègre en plus des images des obj Creer une image TIF / Creer un fichier [ par yann09 ] Salut a tous,Jai crée un servlet qui enregistre les données d'un formulaire dans une BD locale, je souhaiterais pouvoir créer une image TIF a partir d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales