Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Transformer un JPanel en un fichier image. [ Archives / Java2D et java3D ] (Kael_Kael)

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é 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...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.