如何生成log新信息背景图片和在图片上添加水印

在图片上添加文字水印,其实就是要用到两个类,

using System.Drawing;
             using System.Drawing.Drawing2D;

废话不多说了,直接上代码;代码很容易看懂;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace WebApplication10
{
    public enum Postion
    {
        LeftTop,
        RightTop,
        LeftButtom,
        RightButtom,
        Center
    }

    public class Watermark
    {
         public void AddTextToIMage(string IMagePath,string TextStr,Postion postion,string familyfont,float fontSize)
        {
            //设置文字水印的区域
            float RectX = 0;
            float RectY = 0;
            float RectWidth = 0;
            float RectHeight = 0;

            //获取图片
            System.Drawing.Image image = System.Drawing.Image.FromFile(IMagePath);
            System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image);
            Graphics g = Graphics.FromImage(bitmap);

            if(fontSize>(float)(image.Height/10.0) || fontSize>(float)(image.Width/10.0))
            {
                fontSize = (fontSize > (float)(image.Height / 10.0)) == true ? (float)(image.Height / 10.0) : (float)(image.Width / 10.0);
            }

            //设置字体
            Font font = new Font(familyfont, fontSize);
            RectWidth = (fontSize + 2) * TextStr.Length;
            RectHeight = fontSize + 4;
            StringFormat strFormat = new StringFormat();
            strFormat.Alignment = StringAlignment.Center;

            //设置画刷
            Color color = Color.FromArgb(221, 221, 221);
            HatchBrush hbbrush = new HatchBrush(HatchStyle.DiagonalCross, color, color);

            switch(postion)
            {
                case Postion.LeftTop:
                    RectX = 0;
                    RectY = 0;
                    break;
                case Postion.LeftButtom:
                    RectX = 0;
                    RectY = image.Height - RectHeight;
                    break;
                case Postion.RightTop:
                    RectX = image.Width - RectWidth;
                    RectY = 0;
                    break;
                case Postion.RightButtom:
                    RectX = image.Width - RectWidth;
                    RectY = image.Height - RectHeight;
                    break;
                case Postion.Center:
                    RectX = (image.Width - RectWidth) / 2;
                    RectY = (image.Height - RectHeight) / 2;
                    break;

            }

            RectangleF rectf = new RectangleF(RectX, RectY, RectWidth, RectHeight);
            g.DrawString(TextStr, font, hbbrush, rectf, strFormat);

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

            System.Web.HttpContext.Current.Response.Clear();
            System.Web.HttpContext.Current.Response.ContentType = "image/jpeg";
            System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());

            g.Dispose();
            bitmap.Dispose();
            image.Dispose();

        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication10
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Watermark watermark = new Watermark();
            watermark.AddTextToIMage(Server.MapPath("/Images/sss.JPG"), "你好2016!", Postion.Center, "宋体", 15.0f);
        }
    }
}

  

 结果演示图:

时间: 2024-10-01 23:27:55

如何生成log新信息背景图片和在图片上添加水印的相关文章

信息会话Thread_id异常处理(MMS草稿修改收件人,SMS新信息丢失thread数据)

1, sms收到信息,thread表没有create新数据.导致一直有一条未读信息数量显示,但在会话列表中却看不到. (偶现. 解决方法:查询未读信息时,过滤thread丢失的sms信息.先规避此Bug) 分析:Ril层接收新信息会通过Framework发通知——android.provider.Telephony.SMS_DELIVER com.android.mms.transaction.PrivilegedSmsReceiver接收广播,应用程序MMS开始处理 protected voi

快速生成沙盒目录的路径,多图片下载的原理(SDWebImage框架的简单介绍)

一.快速生成沙盒目录的路径 这个类主要是为了方便你快速拿到沙盒目录里文件夹的路径 给NSString写个分类 NSString+CHG.h #import <Foundation/Foundation.h> @interface NSString (CHG) // 用于生成文件在caches目录中的路径 - (instancetype)cacheDir; // 用于生成文件在document目录中的路径 - (instancetype)docDir; // 用于生成文件在tmp目录中的路径 -

powershell 生成随机用户信息

#生成随机用户信息,包括姓名.QQ.邮箱,手机号 [email protected]('一','丁','三','专','世','业','丝','中','丰','临','丹','丽','举','乃','义', '乐','乔','书','云','亘','亮','人','仁','今','仙','令','仪','伟','伯','伶','佑','作', '佩','佳','侠','侬','俊','俏','俐','信','修','倩','健','偲','儿','允','元','兆','光', '兰','兴',

File 与 Log #3--动态加入控件,[图片版]访客计数器(用.txt档案来记录)

File 与 Log #3--动态加入控件,[图片版]访客计数器(用.txt档案来记录) 以前的两篇文章(收录在书本「上集」的第十七章) 请看「ASP.NET专题实务」,松岗出版 File 与 Log #1--ASP.NET的档案与I/O Stream(为系统记录Log文件) File 与 Log #2--[图片版]访客计数器(用.txt档案来记录) 现在这么多免费资源,应该也没人得自己制作「访客计数器」了 这个范例的结果或许不合用,但其中实作的经验倒是很有趣 读者来信询问:       上述第

C#图片切割、图片压缩、缩略图生成

C#图片切割.图片压缩.缩略图生成的实现代码 /// 图片切割函数  /// </summary>  /// <param name="sourceFile">原始图片文件</param>  /// <param name="xNum">在X轴上的切割数量</param>  /// <param name="yNum">在Y轴上的切割数量</param>  ///

ZeroMQ接口函数之 :zmq_curve_keypair - 生成一个新的CURVE 密钥对

ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_curve_keypair zmq_curve_keypair(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_curve_keypair - 生成一个新的CURVE 密钥对 Synopsis int zmq_curve_keypair (char *z85_public_key, char *z85_secret_key); Description 函数zmq_curve_keypair

img只显示图片一部分 或 css设置背景图片只显示图片指定区域

17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左上角为0,0或0%,0%,右下角为高度和宽度,或100%,100%. clip:rect(300px 100px 300px 0px); 设置显示图片的某个区域,分别是上右下左的顺序设置 部分代码:<style type="text/css">img {position:abs

Jquery append 生成的新表单,手动输入修改后,无法获取html真实代码的解决方案

function doSubmit() { $('#T_form select').each(function(){ $(this).find(':selected').attr('selected', true); }); $("#T_form :text").each(function(){ $(this).attr('value', $(this).val()); }); $("#T_form :radio").each(function(){ $(this)

js无刷新上传图片,服务端有生成缩略图,剪切图片,iphone图片旋转判断功能

html: <form action="<{:AppLink('circle/uploadimg')}>" id="imageform" method="post" enctype="multipart/form-data">     <input name="photoimg" type="file" id="xwzx_f" style