Asp.net简单实现给图片增加文字水印_实用技巧

经常看见MOP上有人贴那种动态的图片,就是把一个字符串作为参数传给一个动态网页,就会生成一个带有这个字符串的图片,这个叫做文字水印。像什么原来的熊猫系列,还有后来的大树和金条,都挺有意思。就用Asp.net写了一个非常简单的。全部的代码如下:

复制代码 代码如下:

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Page language="vb" %>
<script runat="server">
    Dim FilePath As String = Server.MapPath("Talk.JPG")
    Sub Page_Load(Sender As Object, E As EventArgs)
        Dim image As System.Drawing.Image = System.Drawing.Image.FromFile( FilePath )
        Dim g As Graphics = Graphics.FromImage(image)
        g.DrawImage(image, 0, 0, image.Width, image.Height)
        Dim f As Font = new Font("华文行楷", 40)
        Dim b As Brush = new SolidBrush(Color.Black)
        Dim s As String = Left(Request.QueryString("str"), 7)
        g.DrawString(s, f, b, 20, 190)
        image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
        g.Dispose()
        image.Dispose()
    End Sub   
</script>

只要把这个代码存成一个aspx文件,比如Test.aspx。然后放到wwwroot里面(假设你的虚拟目录是默认的)。再做一个Talk.JPG的图片,就可以在(20, 190)这个地方打印出“华文行楷”这种字体的文字了。调用方法很简单:

http://localhost/Test.aspx?str=测试一下下!

对于打印的位置和字体还有图片文件都是可以自己设定的。另外,如果出现了以e文作为参数就可以正常显示,而对于中文就无法显示的情况,是因为Asp.net的web.config设置不正确造成了,需要进行如下设置:

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312"/>
    </system.web>
</configuration>

这样,就可以正常显示了。

展示了如何在不影响原图片的基础上动态、有区别地给某些图片添加上我们需要的水印,防止图片“无辜”被别人使用,同时可以为自己的网站做一下广告,呵呵。主要就是展示如何使用IHttpHandler这个接口。

时间: 2024-09-08 21:03:01

Asp.net简单实现给图片增加文字水印_实用技巧的相关文章

asp.net简单页面控件赋值实现方法_实用技巧

本文实例讲述了asp.net简单页面控件赋值的方法.分享给大家供大家参考,具体如下: /// <summary> /// 赋值 表名,控件名,要查询的唯一数据 /// </summary> protected void SetEvaluate(string TableName, string UpName, string Id) { ContentPlaceHolder cph = (ContentPlaceHolder)Page.Master.FindControl("

Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)_实用技巧

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

asp.net简单实现页面换肤的方法_实用技巧

本文实例讲述了asp.net简单实现页面换肤的方法.分享给大家供大家参考,具体如下: 这里实现页面换肤效果,可以 给html form 添加相应的样式 代码如下: private string _StyleClass; public string StyleClass { get { return _StyleClass; } set { _StyleClass = value; } } private void StyleForm() { HtmlForm Form1 = this.FindC

asp.net简单实现单点登录(SSO)的方法_实用技巧

本文实例讲述了asp.net简单实现单点登录(SSO)的方法.分享给大家供大家参考,具体如下: 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统 CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架(耶鲁大学开发)主要用于Java Php 有兴趣大家可以研究下.. 下面是一个简单实现单点登录的

用ASP.NET实现简单的文字水印_实用技巧

代码如下: <%@ Import Namespace="System" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Drawing" %> <%@ Page language="vb" %> <script runat="server">    Dim Fi

asp.net中控制反转的理解(文字+代码)_实用技巧

对IOC的解释为:"Inversion of control is a common characteristic of frameworks, so saying that these lightweight containers are special because they use inversion of control is like saying my car is special because it has wheels." 我想对这一概念执行 一个个人的阐述,以方便

Asp.net给站点某目录增加Aspnet用户_实用技巧

using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControl

asp.net图片上传实例_实用技巧

第一.图片上传,代码如下:xxx.aspx 复制代码 代码如下:  <td class="style1">                 <asp:FileUpload ID="FileUpload1" runat="server"  />                <asp:Button ID="Button1" runat="server" Text="上传

asp.net(C#)压缩图片,可以指定图片模板高宽_实用技巧

复制代码 代码如下: //生成缩略图函数 //顺序参数:源图文件流.缩略图存放地址.模版宽.模版高 //注:缩略图大小控制在模版区域内 public static void MakeSmallImg(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight) { //从文件取得图片对象,并使用流中嵌入的颜色管理信息 System.Dr