Bonjour,

Je souhaite créer une image à partir d'un texte récupéré dans une base de données.

J'ai trouvé le code suivant qui marche à merveille :

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
Sub generationImageVersDisque(ByVal monTexte As String)
 
            ' Instanciation d'un objet Bitmap qui va jouer, en quelque sorte, le rôle de conteneur.
            ' On passe au constructeur les dimensions en pixels que l'on souhaite (largeur, hauteur)
            Dim monBitmap As Bitmap = New Bitmap(600, 100)
            ' Création d'un objet Graphics qui va être notre surface de dessin, on l'associe
            ' à notre objet Bitmap grâce à la méthode FromImage
            Dim monGraphic As Graphics = Graphics.FromImage(monBitmap)
            ' Instanciation de deux objets Brush qui vont nous permettre, respectivement,
            ' de "peindre" le fond, puis de "dessiner" le texte par dessus. Nous leur
            ' passons la couleur que l'on souhaite leur donner
            Dim monPinceau As New SolidBrush(Color.White)
            Dim monStylo As New SolidBrush(Color.Black)
            ' Ici nous nous créons un rectangle de la taille de notre surface de dessin avec
            ' l'objet Brush.
            monGraphic.FillRectangle(monPinceau, 0, 0, 600, 100)
            ' Objet Font qui contient la police et ses caractéristiques
            Dim maPolice As New Font("Arial", 8, FontStyle.Regular)
            ' Structure PointF qui est un ensemble de 2 coordonnées pour le début du texte
            ' sur la surface de dessin.
            Dim mesCoor As New PointF(5.0F, 5.0F)
            ' Rendu du texte : ici nous sommes en qualité optimale.
            ' Plus de détails sur le sujet dans la suite de ce tutoriel
            monGraphic.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit
            ' "Ecriture" du texte sur la surface de dessin, en paramètres, on passe, 
            ' dans l'ordre, le texte, la police, le pinceau, et l'emplacement.
            monGraphic.DrawString(monTexte, maPolice, monStylo, mesCoor)
            ' Enregistrement à la racine de l'application le fichier généré
            monBitmap.Save(Server.MapPath("monImage.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
            ' Ce code crée un lien sur votre page pour que vous puissiez vérifier le résultat,
            ' mais il n'est pas nécessaire pour la création de l'image elle-même.
            Response.Write("<a target=""C:\"" href=""monImage.jpg"">Votre image</a>")
 
 
        End Sub
Néanmoins si le texte est trop long il sort de mon rectangle qui a été défini.

Je voulais savoir s'il y avait moyen de faire les choses suivantes :
1. Aller à la ligne lorsque le texte arrive au bout de mon rectangle.
2. Justifier mon texte


Tout est géré par la méthode drawstring de la classe graphique mais je n'ai pas trouvé les options que je recherche.