c# - 将两张图片合成一张新图片

标签 c# system.drawing

我正在尝试在 .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);

关于c# - 将两张图片合成一张新图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371830/

相关文章:

c# - 从 .NET 应用程序和附件执行服务启动进程

c# - 使用 System.Drawing.Image.FromStream 时出错

c# - 如何在不使用 System.Drawing 的情况下生成颜色

c# - 接口(interface)的好案例

c# - .NET Core 2.1 API Post Controller 返回无效输入

.net - 使用 System.Drawing,如何绘制模仿黄色突出显示标记效果的东西?

.NET:Graphics.DrawImageUnscaled 有什么作用?

c# - 面板处于事件状态滚动时绘制边框

c# - 在 Visual Studio 中以编程方式查询 Git

c# - WPF 中的填充弧