Elmer A. Chacon
Elmer A. Chacon

Reputation: 87

Write text on a bitmap image in C#

Well, I try to write on an image in C#, my code is:

public string WriteOnImage(Bitmap Image, string NameImage, string TextFileName)

    {
        string Message = "OK";
        try
        {
            Bitmap bitMapImage = new Bitmap(Image);

            using (Graphics graphImage = Graphics.FromImage(Image))

            {

                graphImage.SmoothingMode = SmoothingMode.AntiAlias;

                string line;

                // Read the file and display it line by line.
                StreamReader file = new StreamReader(Resources.C_PATH_DESTINO_IMG + TextFileName);
                while ((line = file.ReadLine()) != null)
                {
                    graphImage.DrawString(line, new Font("Courier New", 15, FontStyle.Bold), SystemBrushes.WindowText, new Point(0, 0));
                    HttpContext.Current.Response.ContentType = "image/jpeg";
                    bitMapImage.Save(Resources.C_PATH_DESTINO_IMG + NameImage, ImageFormat.Jpeg);
                    graphImage.Dispose();
                    bitMapImage.Dispose();
                }

                file.Close();
            }
            return Message;
        }
        catch (Exception ex)
        {
            EventLogWrite("Error: " + ex.Message);
            return Message = ex.Message;
        }
    }

this method doesn't work because doesn't write on the image, please help me.

PD: I'm sorry for my english but I'm Latino jeje, thanks.

Upvotes: 3

Views: 5545

Answers (1)

sa_ddam213
sa_ddam213

Reputation: 43596

It looks like you are drawing on the wrong bitmap

 Bitmap bitMapImage = new Bitmap(Image);
 using (Graphics graphImage = Graphics.FromImage(Image))

should be

 Bitmap bitMapImage = new Bitmap(Image);
 using (Graphics graphImage = Graphics.FromImage(bitMapImage))

Upvotes: 4

Related Questions