Add Watermark Text to Images in ASP.NET MVC
A super quick but helpful tutorial on using C# and CSHTML to create a basic ASP.NET MVC application.
Join the DZone community and get the full member experience.
Join For FreeIn this article, we will learn how we can add a watermark to images in ASP.NET MVC 5. We are going to use the .NET graphics library for this.
The libraries to be used for this purpose are liseted below:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
Navigate to View -> Home -> Index.cshtml
@{
ViewBag.Title = "Home Page";
}
<div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="row">
<div class="form-group col-md-5">
<span>Enter Watermark</span>
<input type="text" class="form-control" required name="text" />
</div>
<div class="form-group col-md-5">
<span>Select File:</span>
<input type="file" class="form-control" required name="postedFile" />
</div>
</div>
<input type="submit" class="btn btn-info" value="Upload" />
}
</div>
Below is the controller side code:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace AddWatermarkToImages.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string text,HttpPostedFileBase postedFile)
{
if (postedFile != null)
{
string value = text;
string file = Path.GetFileNameWithoutExtension(postedFile.FileName) + ".png";
using (Bitmap bitmap = new Bitmap(postedFile.InputStream, false))
{
using (Graphics graphics = Graphics.FromImage(bitmap))
{
Brush brush = new SolidBrush(Color.Red);
Font font = new Font("Arial", 90, FontStyle.Italic, GraphicsUnit.Pixel);
SizeF textSize = new SizeF();
textSize = graphics.MeasureString(value, font);
Point position = new Point(bitmap.Width - ((int)textSize.Width + 10), bitmap.Height - ((int)textSize.Height + 10));
graphics.DrawString(value, font, brush, position);
using (MemoryStream mStream = new MemoryStream())
{
bitmap.Save(mStream, ImageFormat.Png);
mStream.Position = 0;
return File(mStream.ToArray(), "image/png", file);
}
}
}
}
return View();
}
}
}
You can download the source code from here.
ASP.NET MVC
ASP.NET
Opinions expressed by DZone contributors are their own.
Comments