Water Marked 水印
from : Pro ASPnetMVCFramework
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace TestMvcWebApp1.ActionResultEx
{
public class WatermarkedImageResult : ActionResult
{
public WatermarkedImageResult() { }
public string ImageFileName { get; private set; }
public string WatermarkText { get; private set; }
public WatermarkedImageResult(string imageFileName, string watermarkText)
{
ImageFileName = imageFileName;
WatermarkText = watermarkText;
}
public override void ExecuteResult(ControllerContext context)
{
using (var image = Image.FromFile(ImageFileName))
using (var graphics = Graphics.FromImage(image))
using (var font = new Font("Arial", 10))
using (var memoryStream = new MemoryStream())
{
// Render the watermark text in bottom-left corner
var textSize = graphics.MeasureString(WatermarkText, font);
graphics.DrawString(WatermarkText, font, Brushes.Black, 10,
image.Height - textSize.Height - 10);
// Transmit the image in PNG format (note: must buffer it in
// memory first due to GDI+ limitation)284 CHAPTER 9 n CONTROLLERS AND ACTIONS
image.Save(memoryStream, ImageFormat.Png);
var response = context.RequestContext.HttpContext.Response;
response.ContentType = "image/png";
response.BinaryWrite(memoryStream.GetBuffer());
}
}
}
}
使用:
public ActionResult ViewmarkedImage()
{
string ImageFileName = @"C:\Documents and Settings\Administrator\My Documents\My Pictures\oem.gif";
string WatermarkText = "这是我的水印";
WatermarkedImageResult result = new WatermarkedImageResult(ImageFileName, WatermarkText);
return result;
}

浙公网安备 33010602011771号