简单的想法:我有两张图片要合并,一张是 500x500,中间是透明的,另一张是 150x150。
基本思路是这样的:创建一个 500x500 的空白 Canvas ,将 150x150 的图像放在空白 Canvas 的中间,然后复制 500x500 的图像,使其透明的中间让 150x150 的图像透过。
我知道如何用 Java、PHP 和 Python 来实现...我只是不知道在 C# 中使用什么对象/类,一个将图像复制到另一个图像的简单示例就足够了。
最佳答案
基本上我在我们的一个应用程序中使用它: 我们想在视频帧上叠加一个播放图标:
Image playbutton;
try
{
playbutton = Image.FromFile(/*somekindofpath*/);
}
catch (Exception ex)
{
return;
}
Image frame;
try
{
frame = Image.FromFile(/*somekindofpath*/);
}
catch (Exception ex)
{
return;
}
using (frame)
{
using (var bitmap = new Bitmap(width, height))
{
using (var canvas = Graphics.FromImage(bitmap))
{
canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
canvas.DrawImage(frame,
new Rectangle(0,
0,
width,
height),
new Rectangle(0,
0,
frame.Width,
frame.Height),
GraphicsUnit.Pixel);
canvas.DrawImage(playbutton,
(bitmap.Width / 2) - (playbutton.Width / 2),
(bitmap.Height / 2) - (playbutton.Height / 2));
canvas.Save();
}
try
{
bitmap.Save(/*somekindofpath*/,
System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception ex) { }
}
}
关于c# - 在 C#/.NET 中合并两个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/465172/