//Create Two image Server path
string strImagePath1 = Server.MapPath("Image1.jpg");
string strImagePath2 = Server.MapPath("Image2.jpg");
//Get Image objct
System.Drawing.Image FirstImage = Bitmap.FromFile(strImagePath1);
Graphics objGraphics = Graphics.FromImage(FirstImage);
System.Drawing.Image SecondImage = Bitmap.FromFile(strImagePath2);
int iFirstImageWidth, iFirstImageHeight, iSecondImageWidth, iSecondImageHeight;
int xPos, yPos;
//Retrieve the Height and Width of Images
iFirstImageWidth = FirstImage.Width;
iFirstImageHeight= FirstImage.Height;
iSecondImageWidth = SecondImage.Width;
iSecondImageHeight = SecondImage.Height;
//Retrieving the position where to image merge
xPos = (iFirstImageWidth - iSecondImageWidth) / 2;
yPos = (iFirstImageHeight - iSecondImageHeight) / 2;
//Draw Second Image into First Image
objGraphics.DrawImage(SecondImage, new Point(xPos, yPos));
Response.ContentType = "image/JPEG";
//Save the Merge Image
FirstImage.Save(Server.MapPath("MergeImage.jpg"), ImageFormat.Jpeg);