[Tips] How to write text or draw string on bitmap image file

0
27
How to write text or draw string on bitmap image file

One beautiful day, your client request you help them build an window application about export some profile CV of users with:
– Input: image and information of user.
– Output: one template with image and information of that user.

Same as picture

How to write text or draw string on bitmap image file

This projects related to write some string, draw some image into bitmap, picture file. So you have to working with API of C# programming language about write string and draw image into picture.

Understand your request. Today, I’ll help you build that application with step by step

Step1: I set that project name is: ExportCandidate

Step2: Find your template of CV on internet, Example, I use this

How to write text or draw string on bitmap image file

Is it look good? 😀

Step3: I prepare for you some API support draw string and insert image into picture file

Check below code (NOT RUN)

string firstText = "Your Name";
PointF firstLocation = new PointF(200f, 90f);
          
string PathSourceImg = @"imgCandicate.jpg";
string PathDistanceImg = @"imgCandicate_dist.jpg";            

using (Graphics graphics = Graphics.FromImage(PathSourceImg))
{
using (Font arialFont = new Font("Verdana", 15, FontStyle.Bold))
    {
    graphics.DrawString(firstText, arialFont, Brushes.Blue, firstLocation);             
    }
}
temp.Save(PathDistanceImg);//save the image file

If you want to write string into picture, use above API, BUT Graphics objects don’t allow you draw string direct into image or picture!!! So if you want to draw string into image, you need create another temp bitmap same as size of bitmaps! after that you can draw any string into image.

Look around below Source Code (PERFECT)

string firstText = "Your Name";

PointF firstLocation = new PointF(200f, 90f);
            

string PathSourceImg = @"imgCandicate.jpg";
string PathDistanceImg = @"imgCandicate_dist.jpg";
                        
Bitmap bitmap = (Bitmap)Image.FromFile(PathSourceImg);  //load the image file
            
// Create a blank bitmap with the same dimensions
Bitmap temp = new Bitmap(bitmap.Width, bitmap.Height);
            
using (Graphics graphics = Graphics.FromImage(temp))
{
    // draw a original bitmap onto the graphices of the new bitmap
    graphics.DrawImage(bitmap, 0, 0);                

    // draw string to temp bitmap, so you can write string to bitmap
    // using (Font arialFont = new Font("Verdana", 12, FontStyle.Bold))
    using (Font arialFont = new Font("Verdana", 15, FontStyle.Bold))
    {
        graphics.DrawString(firstText, arialFont, Brushes.Blue, firstLocation);                    
    }
}
temp.Save(PathDistanceImg);//save the image file

Yay, you can use above code for add string to image, but if you want to add avatar into your bitmap, how do you do it, just use below code

string firstText = "Your Name";

PointF firstLocation = new PointF(200f, 90f);
            

string PathSourceImg = @"imgCandicate.jpg";
string PathDistanceImg = @"imgCandicate_dist.jpg";

string ProfileImage = @"imgpicture.png";
                        
Bitmap bitmap = (Bitmap)Image.FromFile(PathSourceImg);  //load the image file
Bitmap bitmapProfile = (Bitmap)Image.FromFile(ProfileImage);  //load the image file
            
// Create a blank bitmap with the same dimensions
Bitmap temp = new Bitmap(bitmap.Width, bitmap.Height);
            
using (Graphics graphics = Graphics.FromImage(temp))
{
    // draw a original bitmap onto the graphices of the new bitmap
    graphics.DrawImage(bitmap, 0, 0);
    graphics.DrawImage(bitmapProfile, 100, 100);

    // draw string to temp bitmap, so you can write string to bitmap
    // using (Font arialFont = new Font("Verdana", 12, FontStyle.Bold))
    using (Font arialFont = new Font("Verdana", 15, FontStyle.Bold))
    {
        graphics.DrawString(firstText, arialFont, Brushes.Blue, firstLocation);                    
    }
}
temp.Save(PathDistanceImg);//save the image file

Use graphics.DrawImage and graphics.DrawString to draw image into another bitmap and insert string into bitmap.

The last thing, how do we know below dimensions: 200f, 90f?

PointF firstLocation = new PointF(200f, 90f);

You just use any edit graphics program, this tutorial I use photoshop cs6,
Click to View -> Rules (Ctrl+R), right click into rules choose points, view your rules and get your dimensions of image

Photoshop cs6 rules Ctrl+R

Photoshop cs6 rules Ctrl+R

To do this tutorial, you need equip some Photoshop skills 🙂

If you have any question and feedback about draw string and draw image on bitmap image file, leave the messages, we can discuss about it!
Zidane