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:
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; }
Comments are closed.