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

 更新时间:2014年12月11日 14:37:51   投稿:hebedich  
这篇文章主要介绍了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这个接口。

相关文章

  • ASP.NET Core 集成 React SPA应用的步骤

    ASP.NET Core 集成 React SPA应用的步骤

    这篇文章主要介绍了ASP.NET Core 集成 React SPA应用的步骤,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • Asp.net中的页面乱码的问题

    Asp.net中的页面乱码的问题

    Asp.net中的页面乱码的问题...
    2006-09-09
  • ASP.NET 多次提交的解决办法

    ASP.NET 多次提交的解决办法

    只要把这2个方法放到页面最下面(就是调用scriptmanager的RegisterStartupScript方法)
    2008-12-12
  • Visual Studio 2017通过SSH调试Linux上.NET Core

    Visual Studio 2017通过SSH调试Linux上.NET Core

    这篇文章主要为大家详细介绍了Visual Studio 2017通过SSH调试Linux 上.NET Core的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Javascript 直接调用服务器C#代码 ASP.NET Ajax实例

    Javascript 直接调用服务器C#代码 ASP.NET Ajax实例

    近来总有一些朋友会问到一些入门的问题,把这些问题整理一下,写出来。在以前的文章里,曾经利用纯JS编写过Ajax引擎,在真正开发的时候,大家都不喜欢以这种低效率的方式开发,利用MS Ajax的集成的引擎,可以简单不少工作。
    2010-03-03
  • asp.net中session的原理及应用详解

    asp.net中session的原理及应用详解

    Session是一种Web会话中的常用状态之一,Session提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义对象,本文将详细介绍asp.net中session的原理及应用,需要的朋友可以参考下
    2012-11-11
  • ABP框架中的日志功能完全解析

    ABP框架中的日志功能完全解析

    ABP(ASP.NET Boilerplate)是基于ASP.NET的Web开发框架,其在日志方面的功能非常强大,特别是审计跟踪日志,下面我们就来进行ABP框架中的日志功能完全解析
    2016-06-06
  • ASP.NET中MD5与SHA1加密的几种方法

    ASP.NET中MD5与SHA1加密的几种方法

    下面就是ASP.NET中几种加密方法。加密算法有两种,也就是上面提到的MD5和SHA1,这里我举的例子是以MD5为例,SHA1大致相同,只是使用的类不一样。
    2010-04-04
  • asp.net下获取浏览器类型的实现代码

    asp.net下获取浏览器类型的实现代码

    上次我需要判断浏览器是IE还是FF,如果是FF那么页面停止输出。但方法写得不是很好,现在在书中看到了Page.Request.Browser属性,这个属性主要用来检查当前浏览器性能,看下我下面代码的不同执行结果。
    2009-09-09
  • asp.net 执行事务代码

    asp.net 执行事务代码

    asp.net 执行事务的实现代码
    2009-05-05

最新评论