设为首页
加入收藏
联系站长
您现在的位置: 网贝 >> 建站学院 >> ASP技术 >> 数据库相关 >> 文章正文 用户登录 新用户注册
[组图]用Canvas做的ASP无组件生成图片验证码       ★★★★
用Canvas做的ASP无组件生成图片验证码
相关网站:
作者:wyd1520 文章来源:网贝整理 点击数: 更新时间:2005-4-14

点击下载源码

相关图片如下:
按此在新窗口浏览图片
Dim objCanvas
Dim PointX,PointY,PointColor
Dim iTemp
Dim SafeCode
Dim R,G,B,cc,kk

    Const cAmount = 36 ' 文字数量
    Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cc=80
kk=30
SafeCode = ""
Session("SafeCode") = ""

BGColor = "FFFFFF"

R = Mid(BGColor,1,2)
G = Mid(BGColor,3,2)
B = Mid(BGColor,5,2)
  


R = DecHex(R)
G = DecHex(G)
B = DecHex(B)

Set objCanvas = New Canvas

objCanvas.GlobalColourTable(0) = RGB(255,255,255) ' White
objCanvas.GlobalColourTable(1) = RGB(0,0,0) ' Black
objCanvas.GlobalColourTable(2) = RGB(255,0,0) ' Red
objCanvas.GlobalColourTable(3) = RGB(0,255,0) ' Green
objCanvas.GlobalColourTable(4) = RGB(0,0,255) ' Blue
objCanvas.GlobalColourTable(5) = RGB(128,0,0)
objCanvas.GlobalColourTable(6) = RGB(0,128,0)
objCanvas.GlobalColourTable(7) = RGB(0,0,128)
objCanvas.GlobalColourTable(8) = RGB(128,128,0)
objCanvas.GlobalColourTable(9) = RGB(0,128,128)
objCanvas.GlobalColourTable(10) = RGB(128,0,128)
objCanvas.GlobalColourTable(11) = RGB(R,G,B)

objCanvas.BackgroundColourIndex = 11

objCanvas.Resize cc,kk,false


'Randomize timer
'SafeCode = cint(8999*Rnd+1000)


    Randomize
For i = 0 To 3
  SafeCode = SafeCode &" "& Mid(cCode, Int(Rnd * cAmount) + 1, 1)
    Next
'杂点
  
For iTemp = 0 To 30
  Randomize timer
  PointX = Int(Rnd * cc)
  PointY = Int(Rnd * kk)
  PointColor = Int(Rnd * 3)+2
  objCanvas.ForegroundColourIndex = PointColor  
  objCanvas.Line PointX,PointY,PointX,PointY
  
  next
'边框
objCanvas.ForegroundColourIndex = 1
objCanvas.Line 1,1,cc,1
objCanvas.Line 1,kk,1,1
objCanvas.Line 1,kk,cc,kk
objCanvas.Line cc,1,cc,kk

Session("SafeCode") = SafeCode
dim sc,sk
'文字
Randomize timer
sc = cint(3*Rnd)
sk = cint(3*Rnd)
objCanvas.DrawTextWE sc,sk,SafeCode
objCanvas.Write
  

Function DecHex (HStr)

Dim Result
Dim i,L

Result = 0


L = Len(Hstr)

For i = L-1 To 0 Step -1

  Result = Result + (16 ^ i)*GetDecBit(Mid(HStr,i+1,1))
  
Next

DecHex = Result

End Function

Function GetDecBit (HStr)

Dim Result
Dim R(16)
Dim i

Result = 0

R(0) = "0"
R(1) = "1"
R(2) = "2"
R(3) = "3"
R(4) = "4"
R(5) = "5"
R(6) = "6"
R(7) = "7"
R(8) = "8"
R(9) = "9"
R(10) = "A"
R(11) = "B"
R(12) = "C"
R(13) = "D"
R(14) = "E"
R(15) = "F"

For i = 0 To 15
  
  if HStr=R(i) Then Result = i : Exit For
  
Next

GetDecBit = Result

End Function

 

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    相关网站:

    文章 下载 图片
    普通文章连接数据库查询手册
    普通文章ASP中五种连接数据库
    普通文章ASP连接数据库的几种
    普通文章[组图]包含文件对数
    普通文章如何用ASP链接MsSql
    普通文章在MsSql、Access两种
    推荐文章[组图]用Canvas做的
    推荐文章Access转Excel AND 
    推荐文章[组图]用Canvas做的
    推荐文章Access转Excel AND 
    推荐文章[组图]ASP+MS Acces
    推荐文章在ASP中使用Oracle数
    推荐文章ASP使用MYSQL数据库
    推荐文章md5加密ASP的实现
    推荐文章用ASP连接各种数据库
    推荐文章利用ASP存取各种常用
    普通文章把手教你写私服列表
    普通文章WEB标准
    普通文章GOOGLE sitemap官方
    普通文章用php定制404错误页
    普通文章WAP(wml)开发问答
    普通文章[组图]PS教程系列:快
    普通文章时使用apache和IIS,
    普通文章[组图]2005年的第一
    推荐文章[组图]彻底掌握IIS6
    推荐文章[组图]CSS 全攻略
    推荐文章各种脚本错误详解!
    推荐文章直接生成XML的Googl
    推荐文章九个常见的错误原因
    推荐文章Win XP家用版也能装
    推荐文章JSP入门初级教程之J
    推荐文章ASP入门及提高
  • 无组件生成BMP验


  • 包含文件对数据库链

    用Canvas做的ASP无组

    ASP+MS Access常见错
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    Copyright © 2003-2005 NetBei.com All rights reserved.