2011-12-03 52 views
2

我试图在.NET中复制imagecopy PHP函数。我有两张图片需要合并成一张新图片。一个图像是一个模板,我需要将第二个图像放入模板中,然后将结果保存为新文件。这是我到目前为止有:将两个图像合并为一个新图像

//Sized Image 
Bitmap sizedImg = (Bitmap)Image.FromFile(Server.MapPath("~/ImageUploads/") + sizedImageName); 
sizedImg.MakeTransparent(Color.White); 

//Template Image 
Bitmap template = (Bitmap)Image.FromFile(Server.MapPath("~/Assets/img/frame_sm.jpg")); 

//Combine the two 
Graphics newImage = Graphics.FromImage(template); 
newImage.DrawImage(sizedImg, 96, 12, 232, 230); 
newImage.Save(); 

//Save the new image 
string fileName = String.Format("{0}_sizedFB.jpg", originalImageName.Substring(0, originalImageName.IndexOf("_"))); 
//? Save 

首先,这是正确的代码将两个图像合并成一个?如果是这样,我如何将新映像保存到磁盘?

谢谢。

+1

请不要把C#中的标题。这就是标签的用途。 – Amy

+0

保存到磁盘非常简单;调用'Bitmap.Save()'。顺便说一句,'Graphics'直接绘制到'template';你需要一个新的实例。 – Ryan

回答

1

首先,您必须从打开的模板文件创建一个新的位图,以便不修改您的模板,而是根据您的模板创建一个新图像。

​​

然后你这个新的图像上绘制图像:

Graphics newImage = Graphics.FromImage(newimage); 
newImage.DrawImage(sizedImg, 96, 12, 232, 230); 

最后您将新图像保存到指定的文件:

string fileName = String.Format("{0}_sizedFB.jpg", originalImageName.Substring(0, originalImageName.IndexOf("_"))); 
newImage.Save(fileName, ImageFormat.Png); 
+0

优秀。谢谢 – Mike

相关问题