IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Graphisme Java Discussion :

[Debutant(e)]Comment convertir un Graphics en .jpg ou .gif


Sujet :

Graphisme Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut [Debutant(e)]Comment convertir un Graphics en .jpg ou .gif
    Salut,
    J ai codé una applet java et souhaiterai pouvoir convertir l'affchage de l'applet en PDF. J ai ouvert le fichier .html avec open offcice (jusque la tout va bien) mais quand je l'exporte vers pdf le fichier obtenue donne un affichage buggé. je pense pas que ce soit de la faute de open office car j ai déjà converti des documents doc en pdf sans problème.
    Ce que je veux faire maintenant c'est de convertir le Graphics de mon applet en jpeg ou gif pour pouvoir l'exporter sans problème. Si quelqu'un peut me m'aider ou me donner une autre orientation ca serait sympa.


    Voici le code de ma page html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
    	<TITLE></TITLE>
    	<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1  (Linux)">
    	<META NAME="CREATED" CONTENT="20040519;17281300">
    	<META NAME="CHANGEDBY" CONTENT="Lamine Sidibe">
    	<META NAME="CHANGED" CONTENT="20040519;17303100">
    </HEAD>
    <BODY LANG="fr-FR" DIR="LTR">
    <P><APPLET CODEBASE="../lsidibe" CODE="Histo.class" ALIGN=LEFT WIDTH=750 HEIGHT=7000>
    	<PARAM NAME="largeur" VALUE="400">
    	<PARAM NAME="hauteur" VALUE="700">
    </APPLET><BR><BR>
    </P>
    </BODY>
    </HTML>
    Voici le code de ma classe java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
     
    /**Importation des librairies*/
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import java.applet.*;
    import java.awt.*;
    import javax.swing.*;
    import java.lang.*;
     
     
    /**Applet créant un histogramme à partir :
     **/
    public class Histo extends JApplet
    {
     
    /**Donnée membre de l'applet - propre au graphique*/	
    private int        _nbrePoint      = 0;//nbre total de coordonnée (point) disponible
    private int        _tailleAxeX     = 0;//largeur de l'aplet
    private int        _tailleAxeY     = 0;//hauteur de l'applet 
    private int        _multiplicateur = 1;//coefficient pour l'agrandissement
    private float      _etalonnage     = 0;//espace entre les points
    private Vector     _tableauValeur  = new Vector();//vecteur contenant les valeurs
    private Vector     _tableauNom     = new Vector();//vecteur contenant les nom des colonnes
     
    /**Méthode d'initialisation de l'applet - initialise les paramètres du graphique*/
        public void init() {
    	URL             url              = null;
    	URLConnection   urlConnexion     = null;
    	InputStream     entree           = null;
    	BufferedReader  fluxEntree       = null;
    	String          source           = null;
    	String          colonne          = new String("");
    	String          valeur           = new String("");
    	String          ligne            = new String("");
    	int             indiceSeparateur = 0;
    	int             nbreDeLigne      = 0;
     
    	try
    	    {
     
    		//parametre
     
    		colonne          = new String("Ola");
     
    		_tableauNom.addElement("nom des tablespaces");
    		_tableauNom.addElement("n2");
    		_tableauNom.addElement("n3");
    		_tableauNom.addElement("n4");
    		_tableauNom.addElement("n5");
    		_tableauNom.addElement("n6");
    		_tableauNom.addElement("n7");
    		_tableauNom.addElement("n8");
     
     
     
    		_tableauValeur.addElement("taux de remplissage");
    		_tableauValeur.addElement(new Integer(10));
    		_tableauValeur.addElement(new Integer(20));
    		_tableauValeur.addElement(new Integer(30));
    		_tableauValeur.addElement(new Integer(40));
    		_tableauValeur.addElement(new Integer(50));
    		_tableauValeur.addElement(new Integer(25));
    		_tableauValeur.addElement(new Integer(90));
     
     
    		nbreDeLigne=_tableauValeur.size();	
     
     
    		//Initialisation paramêtres du graphique
    		_tailleAxeX     = 700 - 20;
    		_tailleAxeY     = 400 - 20;
    		_multiplicateur = 3;
    		_nbrePoint      = nbreDeLigne;
    		_etalonnage     = _tailleAxeX / _nbrePoint;
    	    }		
    	catch (Exception erreur) 
    	    { 
    		//          showStatus("[Erreur] Initialisation : "+erreur.toString());          
    	    }
        }//Fin de la méthode Init()
     
     
     
     
    /**Méthode de dessin du graphique*/
        public void paint(Graphics g)
        {  
    	try
    	    {
    		Graphics    pinceauNormal    = getGraphics();
    		Graphics2D  pinceau2D        = (Graphics2D) pinceauNormal;
    		int         marge            = 20;
    		int         pointOrigineX    = marge;
    		int         pointOrigineY    = _tailleAxeY-marge;
    		int         i                = 1;
    		int         j                = 1;
    		int         pointXRect       = 0;
    		int         pointYRect       = 0;
    		int         largeurRect      = 0;
    		int         hauteurEtalonnee = 0;
    		Enumeration liste            = null;
    		String      nomAbcisse       = null;
    		String      nomOrdonnee      = null;
    		String      temporaire       = null;
    		Integer     hauteurRect      = null;//Variables pour chaque rectangle
     
     
    		///////showStatus("Traçage du graphique...");	
     
    		setBackground(new Color(255,255,238));
    		int nb;
    		for (nb=0;nb<3;nb++) {
    		    j=1;
    		//On trace l'axe des ordonnées (axes des Y)
        		pinceau2D.setColor(Color.gray);
    		pinceau2D.setFont(new Font("ARIAL",1,18));
    		pinceau2D.drawLine(marge,marge+(157+_tailleAxeY)*nb,pointOrigineX,pointOrigineY+(157+_tailleAxeY)*nb);
    		pinceau2D.drawString("^",marge-5,30+(157+_tailleAxeY)*nb);
     
     
    		//On trace l'axe des abcisses (axes des X)
    		pinceau2D.drawLine(pointOrigineX,pointOrigineY+(157+_tailleAxeY)*nb,_tailleAxeX + marge + ((int)(marge / 2)),_tailleAxeY - marge+(157+_tailleAxeY)*nb);
    		pinceau2D.drawString(">",_tailleAxeX + marge + ((int)(marge / 2)) - 4,_tailleAxeY - marge + 7 +(157 +_tailleAxeY)*nb);
     
    		//On indique le point (0,0) point origine
    		pinceau2D.setFont(new Font("ARIAL",1,16));
    		pinceau2D.drawString("0",pointOrigineX-10,pointOrigineY+(157 +_tailleAxeY)*nb);
     
    		//On indique le nom des axes
    		pinceau2D.setFont(new Font("ARIAL",1,12));
    		nomAbcisse  = (String)_tableauValeur.firstElement();
    		nomOrdonnee = (String)_tableauNom.firstElement();
    		pinceau2D.drawString(nomOrdonnee,_tailleAxeX-nomAbcisse.length()-50,_tailleAxeY+10+ (157 +_tailleAxeY)*nb);
    		pinceau2D.drawString(nomAbcisse,5,10 +(157 +_tailleAxeY)*nb);
     
    		//On trace les rectangles
    		pinceau2D.setColor(Color.black);
    		liste = _tableauValeur.elements();
     
    		int taille=_tableauValeur.size();
    		int f;  
    		for (f =1;f<taille;f++) {		   
     
    		    //on evite la ligne 1 pour ne pas avoir les titres des axes	
    		    hauteurRect      = (Integer)_tableauValeur.elementAt(f);
    		    hauteurEtalonnee = hauteurRect.intValue() * _multiplicateur ;
    		    largeurRect      = (int)(_etalonnage);
    		    pointXRect       = ((int)((f-1) * _etalonnage)) + marge;
    		    pointYRect       = (int)(_tailleAxeY - hauteurEtalonnee - marge)+(157+_tailleAxeY)*nb;
     
    		    //On trace le rectangle correspondant en indiquant la valeur
    		    pinceau2D.setColor(new Color(200,j + 150,j + 100));
    		    if (((Integer)(_tableauValeur.elementAt(f))).intValue()>=30)
    					    pinceau2D.setColor(new Color(200,j ,j ));
    		    pinceau2D.fill3DRect(pointXRect,pointYRect,largeurRect,hauteurEtalonnee,true);
    		    pinceau2D.setColor(Color.darkGray);
    		    pinceau2D.drawString(hauteurRect.toString()+"%",pointXRect+((int)(_etalonnage / 2)),pointYRect - 3);
    		    pinceau2D.setColor(new Color(200,j + 150,j + 100));
    		    if (((Integer)(_tableauValeur.elementAt(f))).intValue()>=30)
    		    pinceau2D.setColor(new Color(200,j,j));
    		    pinceau2D.drawString((String)_tableauNom.elementAt(j),pointXRect+((int)(_etalonnage / 2)),pointOrigineY + 15+(157 +_tailleAxeY)*nb);
    		    j++;
    		}
    		}
    //On force l'affichage
    		setVisible(true);
     
    		//On met le titre du graphique
     
    		//showStatus(getParameter("titre"));	
    	    }
    	catch (Exception erreur) 
    	    { 
    		//showStatus("[Erreur] Création : "+erreur.toString());          
    	    }
     
        }//Fin de la méthode Paint()
     
    }
    Merci




    [Modéré par Didier]
    Ajout de tag dans le titre
    Ajout de balises code pour la lisibilité
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre actif
    Avatar de Didier
    Profil pro
    Developper
    Inscrit en
    Mars 2002
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developper

    Informations forums :
    Inscription : Mars 2002
    Messages : 163
    Points : 299
    Points
    299
    Par défaut
    Question deja posté il y a moins d'une heure....
    Pas de tag dans le titre.....
    Pas de balises code....


    et réponse dans la FAQ:

    http://faqjava.developpez.com/?page=...E_IMAGE_ecrire

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Je te remercie pour ta reponse et ca m'a permi d'avancer. J'ai un problème quand j'essaye d'ecrire dans un fichier .gif que j ai créé. La taille du fichier est egale a 0 alors que l'image n'est pas nulle. Tu sais pas pourquoi la taille est nulle?

    Voici le main de ma classe :
    L'objet Fenetre est un JFrame et l'objet Histo est un JPanel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    public static void main (String [] arg) {
     
        Histo f=new Histo();
        Fenetre h=new Fenetre(f);
        File file = new File ("diag.gif");
        try {
    	Robot robot = new Robot();
    	BufferedImage image = robot.createScreenCapture(
    	  new Rectangle( f.getX(), f.getY(), f.getWidth(), f.getHeight() )
            );
    	if (image==null) System.out.println("c nul");
     
    	file.createNewFile();
    	ImageIO.write(image,"gif",file);
    	System.out.println("ecrit");
        }catch (IOException e) {}catch (AWTException e) {} 
    }

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    J ai trouvé ! Apperement ca marche pas avec le format gif

    au lieu d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageIO.write(image,"gif",file);
    il fallait ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ImageIO.write(image,"jpg",file);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Panel] Comment convertir un rendu en un fichier.jpg ..etc.. ?
    Par pcayrol dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 07/10/2008, 16h50
  2. Réponses: 2
    Dernier message: 25/07/2006, 14h15
  3. [debutant] Comment convertir un string en char
    Par jbidou88 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 04/05/2006, 12h58
  4. [Image]Comment convertir des images bmp en jpg avec PHP ?
    Par amarcil dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/04/2006, 13h59
  5. [C#] Comment convertir une image bmp en jpg !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2004, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo