将两个图像合并为一个新图像

本文关键字:图像 一个 新图像 两个 合并 | 更新日期: 2023-09-27 18:16:30

我正在尝试在。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

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

谢谢。

将两个图像合并为一个新图像

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

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);