下沙论坛

 找回密码
 注册论坛(EC通行证)

用新浪微博连接

一步搞定

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 2748|回复: 1
打印 上一主题 下一主题

电话号码生成图片的ASP程序

[复制链接]
  • TA的每日心情
    开心
    2014-7-28 21:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1
    发表于 2009-4-16 08:44:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    作用:用ASP程序将页面中的电话号码生成图片格式。 以下是引用片段:
    / y# q! S: B, E  ^6 g" _6 g<%
    6 e  t7 {  g$ z5 G) q1 QCall Com_CreatValidCode(Request.QueryString("tel"))  
    5 t. a% i( r& R' w. d, }Public Sub Com_CreatValidCode(pTel)  0 ~+ E, m5 E- l4 w1 s
         '----------禁止缓存  
    0 Y$ X! o* ^% @' _& n; F% Q     Response.Expires = 0
    " Q4 b9 x; n/ f0 Y! l. n     Response.AddHeader "Pragma","no-cache"  
    - b4 L5 C" ]! ~9 k7 h. t" b     Response.AddHeader "cache-ctrol","no-cache"  ; R, p7 x2 E0 {1 s# f" K( P( N
         Response.C  
    8 K" K( F4 a. q3 g     Randomize  
    ! y$ p8 a1 c% B$ J     Dim i, ii, iii ,rndColor,strLen,sql,rs 6 Q/ f1 c) l2 q8 V4 g* P, J. r
         Const cOdds = 5 '------------杂点出现的机率 % P$ F" H3 A% M/ m
         Const str="0123456789-"  / \, z! f: ~. e% g3 n& t
         strLen = len(pTel)
    8 ]& ^6 ]  F, S& G     rndColor = ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) " r+ K2 Z7 q+ z9 Z3 k
         '-----------颜色的数据(字符,背景)  
    & k2 ?7 g/ _, |( F8 n     Dim vColorData(1)  ) t1 V, ?; n) w6 A5 h3 j2 H" ~, N
         'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '----蓝0,绿0,红0(黑色)  
    2 o, M% c8 l! a" T     'vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) '----蓝250,绿236,红211(浅蓝色)  
    4 j0 I+ o$ O, v. E8 w& ?; W     'vColorData(0) = ChrB(197) & ChrB(106) & ChrB(49)     '---- 蓝0,绿0,红0(黑色)  1 c* m; [8 w* d$ F) D4 {4 o" ~  I
         'vColorData(1) = ChrB(238) & ChrB(210) & ChrB(193) '-----蓝250,绿236,红211(浅蓝色)  5 U0 K8 l: W! z
         vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '---------蓝0,绿0,红0(黑色)  " G, f( o9 Y- l7 k4 j( g
         vColorData(1) = ChrB(205) & ChrB(237) & ChrB(245) '------------蓝250,绿236,红211(浅蓝色)  
    9 D$ G1 u2 @! ?, V- k6 p6 v6 T     '--------------------随机产生字符  . A  o/ ]7 J, A: h4 H" n' m# Q
         Randomize
    1 X4 h3 W8 x) U3 W0 i. ~     Dim vCode() 3 T& P9 k$ o) M; I1 z& k4 ~) z! g; F
         redim vCode(strLen-1)
    6 i. F/ [. G) w2 D     For i = 0 To strLen-1 0 D% C! ]& D( m/ t9 a
             vCode(i) =instr(1,str,mid(pTel,i+1,1),1)-1
    2 A/ n" ?/ `+ {) @7 m1 V7 A# O& M     Next  ) Z) I9 b8 A8 p) Y5 D, ^1 Y0 v
         '-----------字符的数据  
    + D; J( ^  |, o+ i# c) o     Dim vNumberData(11)  # g$ q! _+ T0 W& D4 e6 \
         'Verdana Font 2 E5 `/ X) O' @6 B
         vNumberData(0) = "11111111111000111101110111011101110111011101110111011101110111011110001111111111"  
    : U; M6 e% G) u) S0 s" U6 ^6 A+ F9 H     vNumberData(1) = "11111111111101111110011111110111111101111111011111110111111101111110001111111111"  
    9 `) F9 i$ E4 s+ E/ E+ b' {, \     vNumberData(2) = "11111111111000111101110111011101111110111111011111101111110111111100000111111111"  
    ; ?2 L7 e, q9 K& D; J/ O8 r! R     vNumberData(3) = "11111111111000111101110111111101111100111111110111111101110111011110001111111111"  
    ! Y6 }( v% ?- g, o     vNumberData(4) = "11111111111110111111001111101011111010111101101111100001111110111111100111111111"  ' }' m; j) k1 j6 r1 R: F
         vNumberData(5) = "11111111110000011101111111011111110000111111110111111101110111011110001111111111"  
    8 H0 \+ p2 Y1 s     vNumberData(6) = "11111111111000111101101111011111110000111101110111011101110111011110001111111111"  
    6 B5 P, y; x3 ?. z1 c  X     vNumberData(7) = "11111111110000011101101111111011111101111111011111110111111101111111011111111111"  
    ( D! _3 z. [9 k( |5 g     vNumberData(8) = "11111111111000111101110111011101111000111101110111011101110111011110001111111111"  
    # k. p* x; l$ x3 E, h8 h  j- Z6 B     vNumberData(9) = "11111111111000111101110111011101110111011110000111111101111011011110000111111111"  # H7 B; p$ d% T- ]0 B( H) A! z6 S; f
         vNumberData(10) = "11111111111111111111111111111111111111111100000111111111111111111111111111111111"  
    , |) I, a0 g" G5 q5 z8 ^) D$ S     vNumberData(11) = "11111111111111111111111111111111111111111111111111111111111111111111111111111111"  
      h; Z- P! V5 e1 i# {     '-----------------输出图像文件头 <br>
    5 d+ m% \: p  ?: n     Response.BinaryWrite ChrB(66) & ChrB(77) &chrb(((strLen*8*10*3+54) mod 256)) & chrb(((strLen*8*10*3+54)\ 256)mod 256) & ChrB((((strLen*8*10*3+54)\ 256)\256)mod 256) & ChrB(((((strLen*8*10*3+54)\ 256)\256)\256)mod 256) & ChrB(0) & ChrB(0) &_  4 |$ g$ b5 G0 I) ^+ y# @6 r9 A
         ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_  * w. B* K. ~8 k9 R
         ChrB(0) & ChrB(0) & ChrB(strLen*8) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_  
    2 f( D& c% l8 u. l1 D! u, J     ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)  ) s/ z. g' {9 C% l
         '------------------输出图像信息头  ; C* T/ j+ J/ F$ ~! M3 }/ K
         Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)&_
    ( D- {% j+ }) _. C  w& \     ChrB((strLen*8*10*3)mod 256)&ChrB(((strLen*8*10*3)\256)mod 256)&ChrB((((strLen*8*10*3)\256)\256)mod 256)&ChrB(((((strLen*8*10*3)\256)\256)\256)mod 256)&_  1 s  P: v$ f- f
         ChrB(196) & ChrB(14) & ChrB(0) & ChrB(0) & ChrB(196) & ChrB(14)&ChrB(0) & ChrB(0) &_  
    0 Q* }" Z" k' D8 |: w7 `      ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)  
    ; ^  L0 n6 C# @8 J     For i = 9 To 0 Step -1     '----------历经所有行  ' X* q; F" ]* E
             For ii = 0 To strLen-1     '-------历经所有字  # U' W+ m' P1 L# K) E7 G$ {5 `
                 For iii = 1 To 8 '--------历经所有像素  
    * l, M' s  J. z: E# |- I1 Q                '---------逐行、逐字、逐像素地输出图像数据  6 I3 X* Z1 u6 a! ^" |+ T( N9 M9 B, {) v1 E
                    If Rnd * 99 + 1 < cOdds Then '---------随机生成杂点  3 f6 v$ o2 ]) C
                         Response.BinaryWrite rndColor ( s0 ~* @( j4 d4 G$ U
                    Else  
    7 R' X. m9 v% a- i% y. x4 |                     Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 8 + iii, 1))  . T' Z3 D! l2 g6 O- R7 c3 M
                    End If  
    , z$ ~% Z$ S4 F' K. \2 L             Next  " I/ o9 k5 f. ^9 n5 Y/ _
             Next  
    1 Q. p, J5 C" _+ z3 X9 `- U     Next  
    . P" c) L5 v; x0 o2 HEnd Sub
    & h4 B. I0 _4 M) m: o" \%> + {/ K  |  K( [7 ^; H

    , ^: `4 |) v4 u- v      将以上代码保存为img.asp,在要显示电话号码的位置插入<img src="img.asp?tel=010-0000000">即可。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 分享分享 顶 踩 转发到微博
  • TA的每日心情
    开心
    2014-7-28 21:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    2
     楼主| 发表于 2009-4-16 09:17:59 | 只看该作者
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    下沙大学生网推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表