Bonjour à Tous,
Tout d'abord, je dois avouer que je suis totalement novice en programmation GDI. Ceci explique certainement ma question...
Dans le cadre d'un développement de site web .NET 2.0, je dois notamment créer des images dynamiquement, qui contiennent entre autre, du texte.
Bref, je crée un bitmap, lui assigne une couleur de fond, puis écris le texte et ainsi de suite jusqu'à sauvegarder l'image obtenue sur disque.
Tout va très bien sauf que lorsque je regarde de plus près le résultat obtenu (notamment en zoomant), je m'aperçois que ce n'est pas net tout autour du texte. On dirait que le fait d'avoir ajouté le text au bitmap a provoqué une sorte d'interférence entre les pixels qui se trouvent directement autour du texte (voir image en annexe).
Voici le code que j'utilise... Quelqu'un aurait-il une solution?
Merci d'avance,
Didier
Code source (également en annexe):
Public Sub Generate(ByVal vstrText As String)
' Image Container
Dim bmBitmap As Bitmap = New Bitmap(100, 150, PixelFormat.Format32bppArgb)
Dim grGraphic As Graphics = Graphics.FromImage(bmBitmap)
' Rendering quality
grGraphic.SmoothingMode = SmoothingMode.HighQuality
grGraphic.InterpolationMode = InterpolationMode.HighQualityBilinear
grGraphic.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit
' random values for the colors
Dim rndNumber As Random = New Random(DateTime.Now.Millisecond)
Dim r, g, b As Integer
r = rndNumber.Next(0, 200)
g = rndNumber.Next(0, 200)
b = rndNumber.Next(0, 200)
' Background
Dim bgImg as Rectangle = new Rectangle(0,0,100,150)
Dim myBrush As New SolidBrush(Color.FromArgb(r, g, b))
grGraphic.FillRectangle(myBrush,bgImg)
myBrush.Dispose()
' Font
Dim myFont As Font = New Font("Times New Roman", 25, FontStyle.Bold) 'FontStyle.Regular
' text color
Dim myPen As New SolidBrush(Color.white)
' Text drawing
Dim myFont as Font= new Font("Arial", 10.0f, FontStyle.Regular, GraphicsUnit.Point)
grGraphic.DrawString(vstrText, myFont, myPen, New PointF(10.0f, 10.0f))
'Release Brush
myPen.Dispose()
' Affichage de l'image sur la page
bmBitmap.Save("d:\tests\test.jpg", ImageFormat.Jpeg)
'Dispose Font
myFont.Dispose()
'Dispose bitmap
bmBitmap.Dispose()
'Dispose graphical interface
grGraphic.Dispose()
End Sub
Partager