J'essaie d'utiliser DrawString
pour écrire du texte comme une image, puis le faire pivoter de 90 degrés. Cela fonctionne bien avec un bitmap ou directement sur un PictureBox, mais la grande différence est dans la qualité. Le texte dessiné PictureBox
a une grande qualité et a l'air bien. Quand je dessine sur une image, il semble horrible et bloc. J'ai fait quelques changements pour essayer de le rendre plus beau, mais il ne semble pas aussi beau qu'il le devrait.Graphics.Drawstring est belle dans PictureBox mais horrible dans un bitmap
Exemple de code:
Utilisez un projet Windows Forms et placez 2 boîtes d'image sur et un bouton et l'exécuter avec le code suivant pour voir ce que je veux dire:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim g As System.Drawing.Graphics
g = PictureBox1.CreateGraphics
' x.DrawRectangle(New Pen(Brushes.White, 200), New Rectangle(0, 0, 200, 200))
g.TranslateTransform(10.0F, 0.0F)
g.RotateTransform(90)
g.DrawString("MM Components", New Font("Arial", 7, FontStyle.Regular), Brushes.DarkBlue, New PointF(0, 0))
Dim g2 As System.Drawing.Graphics
Dim img As New Bitmap(300, 300, Drawing.Imaging.PixelFormat.Format24bppRgb)
g2 = Graphics.FromImage(img)
g2.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
g2.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGridFit
g2.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
' img.SetResolution(150, 150)
' x.DrawRectangle(New Pen(Brushes.White, 200), New Rectangle(0, 0, 200, 200))
g2.TranslateTransform(10.0F, 0.0F)
g2.RotateTransform(90)
g2.FillRectangle(Brushes.White, 0, 0, 300, 300)
g2.DrawString("MM Components", New Font("Arial", 7, FontStyle.Regular), Brushes.DarkBlue, New PointF(0, 0))
PictureBox2.Image = img
'System.Threading.Thread.Sleep(20)
End Sub
End Class
Oui, la TextRenderingHint est celui qui compte. –
Ity exigeait que les 3 propriétés soient définies. TextRenderingHint = ClearTypeGridFit seul wasn; t assez pour obtenir le rendu de texte de haute qualité que je cherchais. – Dan