Как добавить водяной знак к нескольким изображениям с помощью растрового изображения
Я пытаюсь добавить текстовый водяной знак к нескольким изображениям из каталога и сохранить его в каталоге. Вот что у меня есть до сих пор:
using System.Web.Mvc; using System.IO; using System.Drawing; using System.Drawing.Imaging; namespace something.Controllers { public class something: Controller { public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(string text, string text1) { DirectoryInfo dir = new DirectoryInfo(@"C:\Users\name\Desktop\Images"); FileInfo[] files = dir.GetFiles(); string value = text; string value1 = text1; foreach (FileInfo file in files) { using (Bitmap bitmap = new Bitmap( file.FullName)) { using (Graphics graphics = Graphics.FromImage(bitmap)) { Brush brush = new SolidBrush(Color.Red); Font font = new Font("Arial", 10, FontStyle.Italic, GraphicsUnit.Pixel); SizeF textSize = new SizeF(); textSize = graphics.MeasureString(value, font); Point position = new Point(bitmap.Width - ((int)textSize.Width + 30), bitmap.Height - ((int)textSize.Height + 10)); graphics.DrawString((value + value1), font, brush, position); using (MemoryStream mStream = new MemoryStream()) { mStream.Position = 0; bitmap.Save(mStream, ImageFormat.Png); string _path = Path.Combine(Server.MapPath("~/UploadedFolders"), file.Name); bitmap.Save(_path); return File(mStream.ToArray(), "image/png", file.Name); } } } } return View(); } } }
Вот мой взгляд :
@model something.something @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>UploadFile</h2> @{ ViewBag.Title = "UploadFile"; } @using (Html.BeginForm("Index", "something", FormMethod.Post, new { enctype = "multipart/form-data" })) { @Html.AntiForgeryToken() <div class="form-group"> @Html.LabelFor(m => m.preFix) <input type="text" class="form-control" required name="text" id="preFix" /> </div> <div class="form-group"> @Html.LabelFor(m => m.pageNumber) <input type="text" class="form-control" required name="text1" id="pageNumber" /> </div> <input type="submit" class="btn btn-info" value="Upload" /> @ViewBag.Message }
С помощью этого кода он идет по пути и только добавляет водяной знак к первому изображению в папке и сохраняет его.
Спасибо
Что я уже пробовал:
Bitmap picture = new Bitmap(@"C:\Users\Desktop\A\" + file.FullName + ".bmp");