Solved

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

Posted on 2008-10-01
3
271 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
ID: 22621450
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
ID: 22626067
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
ID: 31502257
Great thank you - that was much easier than I thought it would be.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Windows Tool to Build Android and iOS App 3 53
Host asp.net pages 5 25
About delegates in c sharp 3 33
Office 365 Pass Username an Password in URL 3 37
I've been asked to discuss some of the UX activities that I'm using with my team. Here I will share some details about how we approach UX projects.
Any business that wants to seriously grow needs to keep the needs and desires of an international audience of their websites in mind. Making a website friendly to international users isn’t prohibitively expensive and can provide an incredible return…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

912 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

21 Experts available now in Live!

Get 1:1 Help Now