Text in Bild konvertieren

für ein aktuelles Projekt musste ich einzelne Texte in PNG`s umwandeln. Zum Glück bietet das .Net Framework hier einige nützliche Methoden um diese Anforderung recht schnell umzusetzen.

In meinem Beispiel wird anhand des String die benötigte Bildgröße ermittelt. Danach wird ein transparenter Hintergrund samt Antialiasing und der Pinsel für die Schriftfarbe erzeugt. Hier ein kleines Beispiel wie das dann als PNG aussehen kann:

TextToImage_1

Los geht`s mit dem Coding:

   public Image CreateImageFromText(string Text, Font TextFont)
        {
            // Create a dummy image for space calculation
            Image Img = new Bitmap(1, 1);
            Graphics Drawing = Graphics.FromImage(Img);

            // Calc space for text
            SizeF TextSize = Drawing.MeasureString(Text, TextFont);

            // Dispose drawing objects
            Img.Dispose();
            Drawing.Dispose();

            // Creat final image and graphic
            Img = new Bitmap((int)TextSize.Width, (int)TextSize.Height);
            Drawing = Graphics.FromImage(Img);

            // Set antialiasing
            Drawing.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;

            // Paint the background
            Drawing.Clear(Color.Transparent);

            // Create a brush for the text
            Brush TextBrush = new SolidBrush(Color.Black);

            // Draw the string
            Drawing.DrawString(Text, TextFont, TextBrush, new PointF(0, 0));
            Drawing.Save();

            // Dispose drawing objects
            TextBrush.Dispose();
            Drawing.Dispose();

            return Img;
        }

Posted on 17. März 2016 in Blog, C#

Share the Story

Back to Top