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

Windows Forms Discussion :

Composer image + texte


Sujet :

Windows Forms

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut Composer image + texte
    reBonjour,

    J'ai écris le code suivant pour créer une image à partir d'une image et d'un texte. L'image se place en haut et le texte en dessous.

    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
     
    public static System.Drawing.Bitmap LibelledImage(System.Drawing.Bitmap originalImage, string text, System.Drawing.Font font,
        System.Drawing.Size size, int imageHeight, int textHeight)
    {
     
        // Create target bitmap to return
        System.Drawing.Bitmap targetBmp = new System.Drawing.Bitmap(size.Width, size.Height);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(targetBmp);
     
        // Fill with color
        g.FillRectangle(System.Drawing.Brushes.AntiqueWhite, 0, 0, targetBmp.Width, targetBmp.Height);
     
        // Calculate image origin point and draw image
        System.Drawing.Point originImage = new System.Drawing.Point();
        originImage.X = (size.Width - originalImage.Width) / 2;
        originImage.Y = (imageHeight - originalImage.Height) / 2;
        g.DrawImage(originalImage, originImage);
     
        // Define format to draw text
        System.Drawing.StringFormat format = new System.Drawing.StringFormat(System.Drawing.StringFormatFlags.NoClip);
        format.LineAlignment = System.Drawing.StringAlignment.Center;
        format.Alignment = System.Drawing.StringAlignment.Center;
     
        // Draw text in RectangleF
        //System.Drawing.RectangleF rectText = new System.Drawing.RectangleF(0, imageHeight, size.Width, size.Height);
        //g.DrawString(text, font, System.Drawing.Brushes.Black, rectText, format);
     
        // Draw text on origin point
        System.Drawing.Point originText = new System.Drawing.Point();
        originText.X = size.Width / 2;
        originText.Y = imageHeight + (textHeight / 2);
        g.DrawString(text, font, System.Drawing.Brushes.Black, originText, format);
     
        return targetBmp;
    }
    2 problèmes se posent:

    1 - Quand j'écris le texte sur le point d'origine, ça fonctionne. Le texte est centré là où il faut. Mais quand j'utilise l'écriture dans le RectangleF, rien ne s'affiche. Pourtant, après vérification, la taille et position du rectangle est correcte.

    2 - Si mon texte est trop long pour tenir dans le rectangle, est-ce qu'il y a un "truc" pour qu'il se mette sur 2 lignes sans que j'ai quelque chose à calculer ? Sinon, y a t-il une façon de calculer facilement comment couper mon texte ?

    Merci de votre aide et bon appétit

    Papy

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    arf, je me réponds moi-même, je viens de voir mon erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Drawing.RectangleF rectText = new System.Drawing.RectangleF(0, imageHeight, size.Width, textHeight);

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

Discussions similaires

  1. Composant image (feux)
    Par maredami dans le forum Composants VCL
    Réponses: 11
    Dernier message: 17/02/2006, 17h43
  2. [VB.NET] PDF / Image + Texte Dynamique
    Par MJA.BI dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/01/2006, 20h54
  3. [HTML]Image Text
    Par am.adnane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 08/01/2006, 11h41
  4. [HTML]/[CSS] soulignage de lien (image + texte)
    Par Antickriszt dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 31/03/2005, 20h55
  5. [JLabel] texte + image + texte
    Par soad dans le forum Composants
    Réponses: 6
    Dernier message: 11/02/2005, 18h49

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