Solved

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

Posted on 2008-10-01
3
270 Views
Last Modified: 2013-12-25
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
Comment
Question by:Jen_M66
3 Comments
 
LVL 3

Expert Comment

by:trunghieubkit
Comment Utility
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
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
Comment Utility
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
 

Author Closing Comment

by:Jen_M66
Comment Utility
Great thank you - that was much easier than I thought it would be.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now