• 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;
            }
    
  • 相关阅读:
    一个简单的反反爬~
    查缺补漏 -- python 之 and or的优先级
    从今天开始看《Redis深度历险》--HyperLogLog
    从今天开始看《Redis深度历险》--位图
    从今天开始看《Redis深度历险》--延时队列
    从今天开始看《Redis深度历险》--分布式锁
    redis之set【官方文档搬运+翻译】
    从今天开始看《Redis深度历险》--基础
    collections模块学习之namedtuple
    元组赋值谜题
  • 原文地址:https://www.cnblogs.com/wucg/p/1911465.html
Copyright © 2020-2023  润新知