• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 279
  • 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

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

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