Click here to Skip to main content
15,881,715 members
Articles / Web Development / ASP.NET
Article

Merging Images in .NET

Rate me:
Please Sign up or sign in to vote.
3.97/5 (109 votes)
28 Jun 2006CPOL2 min read 178.1K   7.2K   82   31
Sometimes, we need to place one or more images on the other image’s surface or create an image from a few image files by joining them together. For example, we have “a.jpg”, “b.jpg” and “c.jpg” files and we need to create an image with the word “abc”. In this short tutorial, I will show how to do th
Sample Image - output.jpg

Introduction

Sometimes, we need to place one or more images on the other image’s surface or create an image from a few image files by joining them together. For example, we have a.jpg, b.jpg and c.jpg files and we need to create an image with the word “abc”. In this short tutorial, I will show how to do this.

The System.Drawing namespace in the .NET Framework provides access to basic graphics functionality and System.Drawing.Imagine namespace includes classes and interfaces that provide imaging functionality. To use those namespaces, you need to add a reference to System.Drawing.dll in the Solution Explorer.

Coding

Now let’s discuss the code. At first, we need to create a new image on the surface of which we will place all three images (a, b, c) to create the word “abc”:

C#
// Create a new image
Image img = new Bitmap(300, 100);

Two parameters determine the dimension of the new image. If we want to use the already existing image as background, we can create an image from file:

C#
// Create image object from existing image
Image img = Image.FromFile("Image.jpg");

Before make changes with img, we need to convert it to a Graphics object:

C#
Graphics g = Graphics.FromImage(img);

Now using Graphics.DrawImage method, we can put all letters on the image:

C#
// Place a.gif
g.DrawImage(Image.FromFile("a.gif"), new Point(10, 10));
   
// Place b.jpg
g.DrawImage(Image.FromFile("b.jpg"), new Point(70, 10));
   
// Place c.jpg
g.DrawImage(Image.FromFile("c.jpg"), new Point(130, 10));

The first parameter is the image object, the second – object Point that we use to determine a position by rectangular coordinates.

To save the result in a file, call the Image.Save method:

C#
// Save changes as output.jpg
img.Save("output.jpg", ImageFormat.Jpeg);

GDI library supports a lot of graphic formats. For instance, you can save the result as GIF or PNG:

C#
// Save changes as output.gif
img.Save("output.gif", ImageFormat.Gif);

// Save changes as output.png
img.Save("output.png", ImageFormat.Png);

To display graphics without a white border, I saved letter A as a GIF file and used transparency. As we see far in the result, Graphics.DrawImage method detects that Image object includes a transparency layer and places it in the right way.

All source files with example images can be download from here.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Ukraine Ukraine
Alexander is freelance web developer with 4 years experience. He has skills in ASP.NET/MS SQL Server, PHP/MySQL, Ruby On Rails, XHTML, CSS. You can contact with me by seigo.ua@gmail.com. Also check my homepage at www.klalex.com.

Comments and Discussions

 
PraiseThanks a lot for sharing Pin
MrNams1-Aug-18 22:00
MrNams1-Aug-18 22:00 
Bugplease edit your instructions Pin
Member 136064733-Jan-18 23:10
Member 136064733-Jan-18 23:10 
QuestionGOOD Pin
somnath chaturvedi2-Oct-17 23:36
somnath chaturvedi2-Oct-17 23:36 
QuestionMerging Images in Silverlight vb.net Pin
buddenn9-Sep-16 4:58
buddenn9-Sep-16 4:58 
GeneralThanks it worked !!! Pin
VinayR@J2-Dec-13 23:30
professionalVinayR@J2-Dec-13 23:30 
My plan was to add multiple 2D barcode images on to an single PDF doc.I was looking to merge these barcode images together.As you mentioned using Graphics class i was able to do the same.Thanks once again for making it work in the most simplest form Smile | :) .
QuestionMerging two image reduce the image size Pin
Anbu arunmozhi18-Jul-13 23:11
Anbu arunmozhi18-Jul-13 23:11 
AnswerRe: Merging two image reduce the image size Pin
SaintKith21-Oct-14 20:33
SaintKith21-Oct-14 20:33 
GeneralMy vote of 2 Pin
Anbu arunmozhi18-Jul-13 23:10
Anbu arunmozhi18-Jul-13 23:10 
Questionsir is it possible to using drag ans drop to picturebox Pin
gunakar11-May-13 5:57
gunakar11-May-13 5:57 
QuestionHow did you enable the transparency layer for a.gif?? Pin
Rajiv Charan Tej K21-Oct-12 20:25
Rajiv Charan Tej K21-Oct-12 20:25 
AnswerRe: How did you enable the transparency layer for a.gif?? Pin
Anbu arunmozhi18-Jul-13 23:13
Anbu arunmozhi18-Jul-13 23:13 
GeneralMy vote of 5 Pin
Ashish Tripathi13-Sep-12 6:40
Ashish Tripathi13-Sep-12 6:40 
Questionoverlay image on video Pin
jymitra13-Feb-11 19:40
jymitra13-Feb-11 19:40 
GeneralMy vote of 5 Pin
Michael Boyd22-Sep-10 4:29
professionalMichael Boyd22-Sep-10 4:29 
GeneralForgot to vote Pin
Don Driskell22-Jul-09 4:53
Don Driskell22-Jul-09 4:53 
GeneralNice Article Pin
Don Driskell22-Jul-09 4:48
Don Driskell22-Jul-09 4:48 
GeneralRe: Nice Article Pin
fgimage19-Jun-13 20:16
fgimage19-Jun-13 20:16 
GeneralRelease Memory Pin
JesseZ1-May-07 9:52
JesseZ1-May-07 9:52 
GeneralUpdated June 29, 2006 Pin
firmwaredsp29-Jun-06 18:03
firmwaredsp29-Jun-06 18:03 
GeneralJust curious... Pin
Jun Du7-Jun-06 8:53
Jun Du7-Jun-06 8:53 
GeneralRe: Just curious... Pin
Alexander Kleshchevnikov7-Jun-06 10:49
Alexander Kleshchevnikov7-Jun-06 10:49 
GeneralGood Pin
gbuela29-May-06 1:54
gbuela29-May-06 1:54 
GeneralRe: Good Pin
Stuart Roberts7-Jun-06 18:50
Stuart Roberts7-Jun-06 18:50 
GeneralRe: Good Pin
Robban198025-Mar-07 5:40
Robban198025-Mar-07 5:40 
GeneralWhy Vote so low Pin
NormDroid23-Jan-06 4:08
professionalNormDroid23-Jan-06 4:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.