一尘不染

在C#/。NET中合并两个图像

c#

简单的想法:我有两张要合并的图像,一张是500x500,中间是透明的,另一张是150x150。

基本思想是:创建一个500x500的空白画布,将150x150图像放置在该空白画布的中间,然后将500x500图像复制到上面,以便透明的中间部分可使150x150发光。

我知道如何在Java,PHP和Python中进行操作…我只是不知道在C#中要使用哪些对象/类,只需将图像复制到另一个示例中就可以了。


阅读 257

收藏
2020-05-19

共1个答案

一尘不染

基本上,我在我们的一个应用程序中使用了它:我们想在一个视频帧上叠加一个播放图标:

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) { }
    }
}
2020-05-19