简单的想法:我有两张要合并的图像,一张是500x500,中间是透明的,另一张是150x150。
基本思想是:创建一个500x500的空白画布,将150x150图像放置在该空白画布的中间,然后将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) { } } }