操作图片
using SixLabors.Fonts;using SixLabors.ImageSharp;using SixLabors.ImageSharp.Drawing.Processing;using SixLabors.ImageSharp.Processing;using System.Threading.Tasks;class Program{static async Task Main(){string templatePath = "./证书.jpg";string sealPath = "./印章.png";var templateImage = await Image.LoadAsync(templatePath);var image = await MergeImageAsync(templateImage, sealPath, 20, 20);image.Save("合成后的证书.png");var templateImage2 = await Image.LoadAsync(templatePath);var image2 = await MergeImageAsync(templateImage2, sealPath, 20, 20, 50, 50);image2.Save("合成后的证书并改变印章大小.png");var contestName = "山东第一届体育赛事";var contestItemName = "田径赛项";var studentName = "张三";var awardName = "一等奖";var templateImage3 = await Image.LoadAsync(templatePath);var image3 = await MergeImageAsync(templateImage3, sealPath, 500, 500, 100, 100);AddMultilineText(image3, contestName, 12, 100, 200);AddMultilineText(image3, contestItemName, 12, 100, 300);AddMultilineText(image3, studentName, 12, 100, 400);AddMultilineText(image3, awardName, 12, 100, 500);image3.Save("证书带文字和印章.png");}/// <summary>/// 合并图片/// </summary>/// <param name="templateImage"></param>/// <param name="mergeImagePath">合并图片</param>/// <param name="x">X坐标</param>/// <param name="y">y坐标</param>/// <returns></returns>public static async Task<Image> MergeImageAsync(Image templateImage, string mergeImagePath, int x, int y){// 加载需要合并的图片var mergeImage = await Image.LoadAsync(mergeImagePath);templateImage.Mutate(o =>{o.DrawImage(mergeImage, new Point(x, y), 1);});return templateImage;}/// <summary>/// 合并图片/// </summary>/// <param name="templateImage"></param>/// <param name="mergeImagePath">合并图片</param>/// <param name="x">X坐标</param>/// <param name="y">y坐标</param>/// <param name="width">宽度</param>/// <param name="height">高度</param>/// <returns></returns>public static async Task<Image> MergeImageAsync(Image templateImage, string mergeImagePath, int x, int y, int width, int height){var mergeImage = await Image.LoadAsync(mergeImagePath);mergeImage.Mutate(m =>{m.Resize(new Size(width, height));});templateImage.Mutate(o =>{o.DrawImage(mergeImage, new Point(x, y), 1);});return templateImage;}/// <summary>/// 多行文本输出/// </summary>/// <param name="templateImage"></param>/// <param name="text"></param>/// <param name="fontSize"></param>/// <param name="x"></param>/// <param name="y"></param>/// <returns></returns>public static Image AddMultilineText(Image templateImage, string text, int fontSize, int x, int y){var fonts = new FontCollection();fonts.AddSystemFonts();var fontFamily = fonts.Get("Microsoft YaHei");var font = new Font(fontFamily, fontSize, FontStyle.Bold);templateImage.Mutate(o =>{o.DrawText(text, font, Color.Black, new PointF(x, y));});return templateImage;}}
