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

Multimédia Java Discussion :

Ecrire sur image


Sujet :

Multimédia Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Technicien Informatique
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Par défaut Ecrire sur image
    Bonjour à tous !

    Je souhaiterais à partir d'une image existante la modifier pour y intégrer du texte pouvez vous svp m'indiquer si cela est possible en Java et quel serait la bibliothèque à utiliser pour y parvenir ?

    Je vous remercie de vos conseils


    Jean-Marc

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    pas de besoin de librairie tierce : tout est dans le jdk standard.

    La classe ImageIO te permettra de charger et de sauver une image.

    A partir d'une BufferedImage , tu peux créer un contexte graphique qui te permet de dessiner, donc d'écrire

    quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	BufferedImage image = ...;
    	Graphics2D g = image.createGraphics(); // obtient un contexte graphique pour dessiner dans image
     
            g.setFont(.....);
    	g.drawString("toto", x, y);
     
    	g.dispose(); // important pour libérer les ressources créées pour dessiner
    Consultes entre autres :
    - FAQ Java GUI
    - Working with images
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Profil pro
    Technicien Informatique
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Par défaut Graphics
    Merci pour les infos précédentes !

    Voici à quoi je suis parvenu pour l'instant ...
    je coince avec graphics g ... pas moyen d'utiliser la methode font

    Auriez vous une idée pour me débloquer ?

    Merci pour vos idées et conseils !

    Jean-Marc


    Code Java : 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
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
     
    import javax.imageio.ImageIO;
     
     
    public class EcrireImage {
     
        BufferedImage image = new BufferedImage(256, 256,
                BufferedImage.TYPE_INT_RGB);
     
     
        Graphics g = image.createGraphics();   
     
        Font font = new Font(Font.SERIF, Font.BOLD, 40);
     
        g.setFont(font); 
        g.drawString( "Test", 50, 50 );
        g.dispose(); 
     
     
        try {   
            ImageIO.write( image, "png", new File( "./toto.png" ) );   
            } catch(Exception ex) {   
                ex.printStackTrace();   
            }   
        }   
     
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    qu'entends-tu par "pas moyen d'utiliser la methode font" ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il faut faire

    Graphics2D g = image.createGraphics();

    et pas

    Graphics g = image.createGraphics();



    Graphics2D étends Graphics en lui adjoignant tout un tas de méthodes de dessin bien utiles

  6. #6
    Membre éclairé
    Profil pro
    Technicien Informatique
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Par défaut Saut de ligne
    Bonjour à vous !

    Merci de votre réponse j'avance doucement jusque là je dispose d'une nouvelle image avec du texte... à présent je souhaiterais insérer une ligne et pouvoir choisir la couleur du texte ...

    pour le changement de ligne je pensais utiliser caractère d’échappement \n\r ... mais cela ne semble pas être le bon moyen

    pour changer la couleur je pensais utiliser setColor ...

    Peut être avez vous une idée pour y parvenir ?


    Merci beaucoup pour vos idées !




    Code Java : 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
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import javax.imageio.ImageIO;
     
     
    public class EcrireImage {
     
        public static void main (String [] arg){
     
        BufferedImage image = new BufferedImage(256, 256,
                BufferedImage.TYPE_INT_RGB);
     
     
     
        Graphics2D g1 = image.createGraphics(); 
        g1.create();
        g1.drawString("Bonjour \r" , 10, 10);
     
     
        g1.drawString("Votre Nom est \r", 10, 10);
        //System.getProperty("line.separator");
        g1.drawString("Votre Prénom est\r ", 10, 10);
        //g1.clearRect(50, 50, 50, 50);
     
     
        Font font = new Font(Font.SERIF, Font.BOLD, 40);
        g1.setColor(Color.green);
        g1.setBackground(Color.white);
        g1.setFont(font);
        g1.dispose();
     
     
     
     
     
        try {   
            ImageIO.write( image, "png", new File( "./toto.png" ) );   
            } catch(Exception ex) {   
                ex.printStackTrace();   
            }   
        }   
     
    }

Discussions similaires

  1. ecrire sur une image ?
    Par messahel dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2009, 02h37
  2. Réponses: 2
    Dernier message: 18/03/2009, 20h17
  3. Ecrire sur une image
    Par Viscapon dans le forum AWT/Swing
    Réponses: 19
    Dernier message: 22/06/2008, 21h12
  4. ecrire sur image?
    Par djben dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 22/06/2008, 19h35
  5. [HTML] Ecrire sur une image
    Par machipot dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2007, 17h52

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