Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 280
  • Last Modified:

How do I create an new image using an exisiting background and adding text programatically?

Hi all, Here's what I want to do:
I have 20 odd different images which represent sign backings. I want to be able to get clients to pick a background, enter the text they want in a text box and then create a specific image which adds the text to the backing. Basically I want them to be able to see what their sign will look like. Ideally I would like to be able to use probably 8 different fonts (I understand these are differing widths) and be able to change the font color to either black or silver.  I've never worked with images in C# /.Net before so I'm looking for some kind of guideline as to where to begin. ie: What classes / how to add to an existing image, how to save that image as another etc.  
0
Jen_M66
Asked:
Jen_M66
1 Solution
 
trunghieubkitCommented:
The snippet below may help you,

if you want to draw on it before saving as another file you can create Graphics as following

           Graphics g = this.CreateGraphics();

           g.DrawImage(...);            g.DrawLine(...);            g.DrawRectangle(...);




private void Form1_Load(object sender, EventArgs e)
{
    string lstrFromFile = @"D:\From.gif";
    string lstrToFile = @"D:\To.jpeg";
 
    this.BackgroundImage = Image.FromFile(lstrFromFile);
    this.BackgroundImage.Save(lstrToFile);
}

Open in new window

0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Here is a small converted VB.Net snippet that loads a background image and puts text into the middle of it:
    Bitmap bmp = new Bitmap(@"c:\someImage.jpg");
    string msg = "Hello World!";
 
    Graphics G = Graphics.FromImage(bmp);
    Font F = new Font("Arial", 48, FontStyle.Regular, GraphicsUnit.Point);
    StringFormat SF = new StringFormat();
    SizeF SZ = G.MeasureString(msg, F, new SizeF(bmp.Width, bmp.Height), SF);
 
    G.DrawString(msg, F, Brushes.Red, (bmp.Width / 2) - (SZ.Width / 2), (bmp.Height / 2) - (SZ.Height / 2), SF);
 
    F.Dispose();
    G.Dispose();
 
    pictureBox1.Image = bmp;

Open in new window

0
 
Jen_M66Author Commented:
Great thank you - that was much easier than I thought it would be.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now