在Asp.net中为图像加入水印信息并保存为Jpg类型

using System.Drawing;
using System.IO;
using System.Drawing.Imaging;

private void AddTextToImg(string fileName,string text)
{
if(!File.Exists(MapPath(fileName)))
{
throw new FileNotFoundException("The file don't exist!");
}

if( text == string.Empty )
{
return;
}
//还需要判断文件类型是否为图像类型,这里就不赘述了

System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
Graphics g = Graphics.FromImage(bitmap);

float fontSize = 12.0f; //字体大小
float textWidth = text.Length*fontSize; //文本的长度
//下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float rectX = 0;
float rectY = 0;
float rectWidth = text.Length*(fontSize+8);
float rectHeight = fontSize+8;
//声明矩形域
RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);

Font font = new Font("宋体",fontSize); //定义字体
Brush whiteBrush = new SolidBrush(Color.White); //白笔刷,画文字用
Brush blackBrush = new SolidBrush(Color.Black); //黑笔刷,画背景用

g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight); 

g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms = new MemoryStream( );
//保存为Jpg类型
bitmap.Save(ms,ImageFormat.Jpeg);

//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( ms.ToArray() );

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

调用时很简单,

AddTextToImg("me.jpg","程序人生http://www.manong123.com/");

一切OK了,感觉.net确实好强大,这些功能在Asp中可是奢侈品了,而在.Net环境中却能轻而易举的完成!

(0)

相关推荐

  • ASP.NET技巧:为Blog打造个性日历

    日历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少.纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发. 新建一个用户控件,把calender控件拉进来.第一步是外观设置,这个根据你的需要,只需对它的相关属性做一些调整即可.下图是我调整后的界面 属性设置如下: <asp:calendar id="Calendar1" CellPadding="2" Width="160px"

  • asp.net中日历函数Calendar的使用方法

    今天介绍的是微软提供的ajax calendar控件.这个控件使用了ajax的效果,并通过前台js和style设置事件和效果.功能丰富.样式自有,实为网站设计.mis开发之必备控件. 按照惯例,现在该贴代码了: <asp教程:textbox runat="server" id="txtcalendar" width="150" /> <ajaxtoolkit:calendarextender runat="server

  • ASP.NET书籍信息录入实现代码

    1. 在数据库中建立一个test数据库,在test数据库中建立一个book_info表.        Book_name      varchar(100)         Author               varchar(50)          Press               varchar(50)        Press_date      varchar(20)          Image              varchar(30) 2. 制作一个如下页面:

  • 在ASP.NET中实现弹出日历的具体方法

    ctlCalendar.ascx的源代码: 复制代码 代码如下: <%@ Control Language="c#" AutoEventWireup="false" Codebehind="ctlCalendar.ascx.cs" Inherits="calendar.ctlCalendar" TargetSchema="http://schemas.microsoft.com/intellisense/ie5

  • asp.net 编译器错误信息: CS0006: 未能找到元数据文件 该死的.NET

    编译器错误信息: CS0006: 未能找到元数据文件"C:\\WINDOWS\\assembly\\GAC_32\\System.EnterpriseServices\\2.0.0.0__b03f5f7f11d50a3a\\System.EnterpriseServices.dll" 提示这样的报错 郁闷 下面给出解决的方案 gacutil.exe for dotnet 2.0. 复制代码 代码如下: gacutil /i DriveLetter: \ YourPath \ YourA

  • ASP.NET中日历控件和JS版日历控件的使用方法(第5节)

    今天小编带大家以做任务的形式了解ASP.NET中日历控件的使用方法,主要任务内容: 1.添加一个日历,设置日期以蓝色的完整名称显示,周末以黄色背景红色文字显示,而当前日期使用绿色背景显示,用户可以选择一天.一周或整个月,被选的天/周/月使用灰色背景色来显示.当选中一个日期后,把时间显示在下面的一个文本框中,效果如图所示: 2.设计一个注册页面,使用js日历控件帮助用户输入出生日期.效果如图所示: 学习项目一  Calendar日历控件 1.在站点下创建一个Calendar页面,并在页面上拖放一个

  • 在Asp.net中为图像加入水印信息并保存为Jpg类型

    using System.Drawing; using System.IO; using System.Drawing.Imaging; private void AddTextToImg(string fileName,string text) { if(!File.Exists(MapPath(fileName))) { throw new FileNotFoundException("The file don't exist!"); } if( text == string.Em

  • Asp.net开发之webform图片水印和图片验证码的实现方法

    两者都需要引入命名空间:using System.Drawing; 一.图片水印 前台Photoshuiyin.aspx代码: <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上传" /><br /> &

  • 在ASP.NET中重写URL的代码

    经常有人请我指导应该如何动态地"重写"URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自己的需求组织你的URL的结构. 为什么URL映射和重写很重要? 下面是开发人员想要对URL有更大的灵活性的最常见的场景: 1) 处理这样的情形:你要更改你的web应用中网页的结构,但你同时也要确保在你移动网页后,那些被人收藏的老URL不会成为死链接.重写URL允许你透明地将请求转交到新的网

  • ASP.NET中FCKEDITOR在线编辑器的用法

    你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,请修改配置文件夹中编辑器BasePath参数,如下所示: oFckeditor.BasePath="/Components/fckeditor/"; 另外,FCKEDITOR文件夹中所有以下划线开头的文件夹及文件,都是可选的,可以安全的从你的发布中删除.它们并不是编辑器运行时必需的 如何将FCKEDITOR整合进我的页面? 由于目前的版本提供的FC

  • ASP.NET中画图形验证码的实现代码

    本文给大家分享一段asp.net代码实现画图形验证码功能,代码简单易懂,具体代码如下所示: context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天地会反清复明杨中科小宝双儿命名空间语现在明天来多个的我山东河北南固安北京南昌东海西安是沙河高教园学" + "木禾上下土个八入大天人火文六七儿九无口日中了子门月不开四五目耳头米见白田电也长山出飞马鸟云

  • ASP.NET中常见文件类型、扩展名、存放位置及用途总结

    .asax 应用程序根目录. 通常是 Global.asax 文件,该文件包含从 HttpApplication 类派生并表示该应用程序的代码. 有关更多信息,请参见 Global.asax 语法. .ascx 应用程序根目录或子目录. Web 用户控件文件,该文件定义自定义.可重复使用的用户控件. 有关更多信息,请参见 ASP.NET 用户控件. .ashx 应用程序根目录或子目录. 一般处理程序文件,该文件包含实现 IHttpHandler 接口以处理所有传入请求的代码. 有关更多信息,请参

  • 使用OpenCV为图像加水印的教程

    目录 1. 什么是水印? 2. 在 OpenCV 中调整图像大小 3.使用图像创建水印 参考 在本文中,我们将学习如何使用 OpenCV 为多个图像添加水印. 1. 什么是水印? 水印是有意叠加在不同图像上的标志.签名.文本或图案,用于保护图像的版权. 其主要目的是宣传品牌,并使未经所有者许可复制或使用原始图像变得更加困难. 组织和专业人士经常使用水印来防止在在线托管内容后被其他人使用他们的内容. 那么,你有没有想过为图像添加水印? 例如,我们写博客会说明外部图像的来源.但是你自己创建的图像呢?

  • ASP.NET中IsPostBack用法详解

    本文针对ASP.NET中IsPostBack的用法进行了详细的说明,有助于读者更准确的掌握ASP.NET中IsPostBack的用法. 一.IsPostBack介绍: Page.IsPostBack是一个标志:当前请求是否第一次打开.调用方法为:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它们都等价. 1)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通过页面的提交按钮或能引起提交的按钮以POS

  • ASP.NET中验证控件的使用方法

    对于这些常用的控件有效性验证,在Asp.Net中有单独的验证控件可供使用.他们可以满足一般的,诸如非空,范围.比较等的验证,为用户登录页面添加输入数据验证功能和验证码功能. 验证控件: Asp.Net中内置的验证控件有:RequiredFieldValidation.RangeValidation.RegularExpressValidation.CompareValidation.CustomValidation和ValidationSummary等六种.其中用户自定义验证控件,由于并不非常常

  • ASP.Net中利用CSS实现多界面的两种方法

    本文实例讲述了ASP.Net中利用CSS实现多界面的两种方法.分享给大家供大家参考.具体实现方法如下: 可以通过使页面动态加载不同CSS来实现多界面的效果: 方法一: 复制代码 代码如下: <%@page language="C#"%> <%@import namespace="System.Data"%> <script language="c#" runat="server"> publ

随机推荐