Rubrik: Grafik und Font · Font & Text | VB-Versionen: VB2005, VB2008, VB2010 | 27.12.11 |
Text in Grafik umwandeln Eine Funktion, mit der sich ein beliebiger Text in eine Grafik (Bitmap) umwandeln lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.243 |
www.tools4vb.de | System: WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgender Funktion lässt sich ein beliebiger Text (Zeichenfolge) in ein Grafik-Objekt umwandeln, das dann bspw. in einer PictureBox angezeigt werden kann. Neben der Schriftart lässt sich auch die Textfarbe, die Hintergrundfarbe der Grafik, sowie optional noch der Abstand des Textes zum Rand der Grafik festlegen.
Imports System.Drawing Imports System.Drawing.Drawing2D ...
''' <summary> ''' Wandelt den übergebenen Text in eine Grafik um. ''' </summary> ''' <param name="Text">Text, aus dem eine Grafik erstellt werden soll.</param> ''' <param name="Font">Schrift</param> ''' <param name="ForeColor">Textfarbe</param> ''' <param name="BackColor">Hintergrundfarbe der Grafik</param> ''' <param name="Padding">Abstand des Textes vom Rand der Grafik</param> ''' <returns>Image-Objekt</returns> Public Function Text2Bitmap(ByVal Text As String, _ ByVal Font As Font, _ ByVal ForeColor As Color, _ ByVal BackColor As Color, _ ByVal Padding As Integer) As Image ' benötigte Größe für die Grafik ermitteln Dim imgSize As System.Drawing.Size = TextRenderer.MeasureText(Text, Font) Dim imgWidth As Integer = imgSize.Width + Padding * 2 Dim imgHeight As Integer = imgSize.Height + Padding * 2 ' Bitmap-Objekt erstellen Dim Bitmap As New Bitmap(imgWidth, imgHeight) Using Graphics As Graphics = Graphics.FromImage(Bitmap) Graphics.FillRectangle(New SolidBrush(BackColor), 0, 0, imgWidth, imgHeight) Graphics.DrawString(Text, Font, New SolidBrush(ForeColor), Padding, Padding) End Using Return Bitmap End Function
''' <summary> ''' Wandelt den übergebenen Text in eine Grafik um. ''' </summary> ''' <param name="Text">Text, aus dem eine Grafik erstellt werden soll.</param> ''' <param name="Font">Schrift</param> ''' <param name="ForeColor">Textfarbe</param> ''' <param name="BackColor">Hintergrundfarbe der Grafik</param> ''' <returns>Image-Objekt</returns> Public Function Text2Bitmap(ByVal Text As String, _ ByVal Font As Font, _ ByVal ForeColor As Color, _ ByVal BackColor As Color) As Image Return Text2Bitmap(Text, Font, ForeColor, BackColor, 0) End Function
Aufrufbeispiel:
' Text in Grafik umwandeln und anzeigen PictureBox1.Image = Text2Bitmap("www.vbarchiv.net", _ New Font("Verdana", 14, FontStyle.Bold), Color.Red, Color.White, 10)