下沙论坛

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

QQ登录

QQ登录

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

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

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

    [LV.1]初来乍到

    跳转到指定楼层
    1
    发表于 2009-4-16 08:44:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    作用:用ASP程序将页面中的电话号码生成图片格式。 以下是引用片段:9 x& |- W/ {& z6 m$ |$ R
    <%
    + Q. _- h4 O* S- t; Z  ~Call Com_CreatValidCode(Request.QueryString("tel"))  
    4 _0 O2 u, k; r1 K  z$ DPublic Sub Com_CreatValidCode(pTel)  
    . }+ k8 b5 o3 `$ d" Y& y3 |     '----------禁止缓存  - ^0 A5 e0 z1 `" C( v
         Response.Expires = 0 * z+ @, y; P( c
         Response.AddHeader "Pragma","no-cache"  ' R+ J7 K  W3 Y; D* J6 u( V( e/ N
         Response.AddHeader "cache-ctrol","no-cache"  ' A5 J  ?: b' o! K6 {( }
         Response.C  
    4 I4 t% n" S! L8 i9 p2 W, R     Randomize  
    2 r7 l1 Z8 f* ?# ?  R  D) F, r     Dim i, ii, iii ,rndColor,strLen,sql,rs
    ( R/ M' \9 I% H; b+ D0 ?4 b- C5 j- x     Const cOdds = 5 '------------杂点出现的机率
    ( o5 I4 f) b. B$ P6 [     Const str="0123456789-"  
    / o" O! z7 g- i8 L0 ~     strLen = len(pTel) 8 R: w* G+ U+ \/ ]  B, f
         rndColor = ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) 7 x* }* B. T% L1 U% e5 w1 T
         '-----------颜色的数据(字符,背景)  ; \" s4 q$ l$ {- h, D( r1 ?
         Dim vColorData(1)  
    & Z% C. \% g$ B* A# ~* ?/ h: S     'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '----蓝0,绿0,红0(黑色)  
    1 J, v0 n7 w; W& F8 a- P* R     'vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) '----蓝250,绿236,红211(浅蓝色)  . e: J, ~# n2 V
         'vColorData(0) = ChrB(197) & ChrB(106) & ChrB(49)     '---- 蓝0,绿0,红0(黑色)  
    6 V; J0 y7 e5 f! o0 |+ O: A8 T     'vColorData(1) = ChrB(238) & ChrB(210) & ChrB(193) '-----蓝250,绿236,红211(浅蓝色)  
    # z# s% g# `# I3 C5 O5 G     vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '---------蓝0,绿0,红0(黑色)  - u/ o# p: n* t2 s
         vColorData(1) = ChrB(205) & ChrB(237) & ChrB(245) '------------蓝250,绿236,红211(浅蓝色)  6 h' v! Z/ K0 F$ C8 ?# j
         '--------------------随机产生字符  / ?. C' S( n  T$ L
         Randomize / Q6 ^$ r) D. q" q6 _
         Dim vCode()
    3 |) d- ^/ D4 Q3 |% m; v     redim vCode(strLen-1)
    ) ~& e2 s2 z! D0 Q/ R     For i = 0 To strLen-1 , _: Y3 y; [4 r2 ~; q& d
             vCode(i) =instr(1,str,mid(pTel,i+1,1),1)-1
    ) X, k5 s6 L9 H# w, J     Next  
    % O1 H% A2 S, J2 X     '-----------字符的数据  6 m/ C! I5 ], i8 d& Y8 \
         Dim vNumberData(11)  
    8 c  _# q' C. J! V     'Verdana Font ! @6 g4 r7 T$ V. b" Y" o
         vNumberData(0) = "11111111111000111101110111011101110111011101110111011101110111011110001111111111"  
    & ^7 ~) r7 `1 ?8 c8 H2 Y' K     vNumberData(1) = "11111111111101111110011111110111111101111111011111110111111101111110001111111111"  
    : E/ d: w1 J* \) m# P% k     vNumberData(2) = "11111111111000111101110111011101111110111111011111101111110111111100000111111111"  " r. e- Y0 t, \! `7 e+ \
         vNumberData(3) = "11111111111000111101110111111101111100111111110111111101110111011110001111111111"  2 W: A7 m+ A& D
         vNumberData(4) = "11111111111110111111001111101011111010111101101111100001111110111111100111111111"  , L+ r8 `& p! Q- s
         vNumberData(5) = "11111111110000011101111111011111110000111111110111111101110111011110001111111111"  6 h( }7 [. I( v1 t
         vNumberData(6) = "11111111111000111101101111011111110000111101110111011101110111011110001111111111"  1 F* A) n% X- A
         vNumberData(7) = "11111111110000011101101111111011111101111111011111110111111101111111011111111111"  ; m% M! m9 V2 t( V" ^& ]
         vNumberData(8) = "11111111111000111101110111011101111000111101110111011101110111011110001111111111"  
    ! p/ r# Q6 Y' S+ R' W9 w7 k     vNumberData(9) = "11111111111000111101110111011101110111011110000111111101111011011110000111111111"  7 a( ^6 C+ O  Y3 V8 [
         vNumberData(10) = "11111111111111111111111111111111111111111100000111111111111111111111111111111111"  
    $ w" W' a7 H% v6 q6 ~, R; S     vNumberData(11) = "11111111111111111111111111111111111111111111111111111111111111111111111111111111"  4 Q6 r( e' R. ]7 N% I$ `4 z
         '-----------------输出图像文件头 <br> ; w7 j- f( I9 p. L  r5 Z
         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) &_  
    " ~3 k' C3 I  s# j5 }9 @, P     ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_  
    7 }* y; M. }  ]; k0 @6 _. U( f3 T/ B1 z     ChrB(0) & ChrB(0) & ChrB(strLen*8) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_  
    * a. ^+ X( }' M9 [& Q$ u     ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)  9 Z0 m* U( t" E% b9 H
         '------------------输出图像信息头  
    $ Y- y9 E, p  k( J/ E     Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)&_
    " Y/ s  f) l/ r9 c     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)&_  
    4 F' x. O" I% I# u% c     ChrB(196) & ChrB(14) & ChrB(0) & ChrB(0) & ChrB(196) & ChrB(14)&ChrB(0) & ChrB(0) &_  
    $ [$ N! V& S1 x$ v1 Z, U: _      ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)  
    ; U# i' O  H3 W" e     For i = 9 To 0 Step -1     '----------历经所有行  7 q" m7 d$ }1 c: Z/ G: z
             For ii = 0 To strLen-1     '-------历经所有字  
    8 x+ [# }% Q! Z             For iii = 1 To 8 '--------历经所有像素  9 H2 I" l0 _9 |5 z; l1 v" r
                    '---------逐行、逐字、逐像素地输出图像数据  . u$ e  T4 i7 Y) O
                    If Rnd * 99 + 1 < cOdds Then '---------随机生成杂点  & [3 I3 v. U9 H  M
                         Response.BinaryWrite rndColor ) B1 O% I/ {4 u' N8 P8 P
                    Else  
    . g0 g8 ?1 @. Q# J                     Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 8 + iii, 1))  
    4 w3 U* G8 z' @                End If  
      j9 G( c" O2 v/ K! c             Next  
    * ~2 Y& H3 |8 l7 ?4 J; C4 M         Next  
    * w0 O! N2 H$ f* a0 q* ?. k6 x     Next  + P4 k/ O+ L/ w) x
    End Sub
    7 P0 s8 t3 r6 t9 y" p%>
    . _  k' O% z3 w% W; a6 P# |" D
    ) u8 g! l8 m% E2 P8 Y      将以上代码保存为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 下一条

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