我正在尝试在.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
首先,这是将两个图像合二为一的正确代码吗?如果是这样,我如何将新图像保存到磁盘?
谢谢。
答案 0 :(得分:1)
首先,您必须从打开的模板文件中创建新的位图,以便不修改模板,而是根据模板创建新图像。
Bitmap template = (Bitmap)Image.FromFile(Server.MapPath("~/Assets/img/frame_sm.jpg"));
Bitmap newimage = new Bitmap(template);
然后在这个新图像上绘制图像:
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);