Feedback

C# - Text2Bitmap (String in Bild umwandeln)

Veröffentlicht von am 4/25/2008
(1 Bewertungen)
Wandelt einen String in ein Bitmap um.

Aufrufen mit z.B.

pictureBox1.Image = Text2Bitmap("BEISPIEL", "Courier New", 12);
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

        /// <summary>
        /// Wandelt einen String in ein Bitmap (Image) um.
        /// </summary>
        /// <param name="Text">Beliebiger Text (auch mehrzeilig mit \n)</param>
        /// <param name="Schrift">Font als Objekt</param>
        /// <param name="ForeColor">Schriftfarbe</param>
        /// <param name="BackColor">Hintergrundfarbe</param>
        /// <returns></returns>
        public static Image Text2Bitmap(string Text, Font Schrift, Color ForeColor, Color BackColor)
        {
            int intWidth, intHeight;

            TextSize(Text, Schrift, out intWidth, out intHeight);

            SolidBrush objBrushForeColor = new SolidBrush(ForeColor);
            SolidBrush objBrushBackColor = new SolidBrush(BackColor);

            Point objPoint = new Point(0, 0);

            Bitmap objBitmap = new Bitmap(intWidth, intHeight);
            Graphics objGraphics = System.Drawing.Graphics.FromImage(objBitmap);

            objGraphics.FillRectangle(objBrushBackColor, 0, 0, intWidth, intHeight);
            objGraphics.DrawString(Text, Schrift, objBrushForeColor, objPoint);

            return objBitmap;
        }

        /// <summary>
        /// Übergibt die Größe eines Textes in Pixel
        /// </summary>
        /// <param name="Text">Text dessen Größe ermittelt werden soll (auch mehrzeilig mit \n)</param>
        /// <param name="Schrift">Font als Objet</param>
        /// <param name="Width">Ausgabe : Breite in Pixel</param>
        /// <param name="Height">Ausgabe : Höhe in Pixel</param>
        public static void TextSize(string Text, Font Schrift, out int Width, out int Height)
        {
            System.Drawing.Size objSize = TextRenderer.MeasureText(Text, Schrift);
            Width = objSize.Width;
            Height = objSize.Height;
        }




// OPTIONALE ÜBERLADUNGEN:

        /// <summary>
        /// Wandelt einen String in ein Bitmap (Image) um.
        /// </summary>
        /// <param name="Text">Beliebiger Text (auch mehrzeilig mit \n)</param>
        /// <param name="FontName">Name des Font z.B. Arial</param>
        /// <param name="FontSize">Fontgröße</param>
        /// <param name="ForeColor">Schriftfarbe</param>
        /// <param name="BackColor">Hintergrundfarbe</param>
        /// <returns></returns>
        public static Image Text2Bitmap(string Text, string FontName, float FontSize, Color ForeColor, Color BackColor)
        {
            return Text2Bitmap(Text, new Font(FontName, FontSize), ForeColor, BackColor);
        }

        /// <summary>
        /// Wandelt einen String in ein Bitmap (Image) um. Schriftfarbe ist schwarz, Hintergrund ist weiss
        /// </summary>
        /// <param name="Text">Beliebiger Text (auch mehrzeilig mit \n)</param>
        /// <param name="FontName">Name des Font z.B. Arial</param>
        /// <param name="FontSize">Fontgröße</param>
        /// <returns></returns>
        public static Image Text2Bitmap(string Text, string FontName, float FontSize)
        {
            return Text2Bitmap(Text, new Font(FontName, FontSize), Color.Black, Color.White);
        }

2 Kommentare zum Snippet

Georg Riha schrieb am 6/14/2009:
Ist es auch möglich wieder aus dem bild den String wiederherzustellen?
Martin Dauskardt schrieb am 8/22/2018:
Man könnte z.B. den Ursprungs-String in das Tag der Bitmap schreiben/auslesen.
Sonst käme hier nur eine OCR-Software in Frage. https://de.wikipedia.org/wiki/Texterkennung
 

Logge dich ein, um hier zu kommentieren!