下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

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

    [LV.1]初来乍到

    跳转到指定楼层
    1
    发表于 2009-4-16 08:44:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    作用:用ASP程序将页面中的电话号码生成图片格式。 以下是引用片段:
    * g# X# o  \" Y+ ~, D& u% Z0 F8 x0 U<% # H- R  d* w2 }2 W* x6 X, S
    Call Com_CreatValidCode(Request.QueryString("tel"))  9 D  W+ f- _) O- X1 P
    Public Sub Com_CreatValidCode(pTel)  
    * P: }4 Y1 |- [+ m) q     '----------禁止缓存  4 [7 _; L; z& ]9 n, M1 ?0 S' P7 \
         Response.Expires = 0   H4 p$ X# W  |9 M
         Response.AddHeader "Pragma","no-cache"  ) \/ _  a" T' e: T
         Response.AddHeader "cache-ctrol","no-cache"  
    ; g+ t2 k" P* o% Y6 I( l  P     Response.C  . ~4 Q7 O7 k) m9 u7 e) S! z& z+ F( U
         Randomize  
    ; |% B2 R- K. U% B% @( E+ M     Dim i, ii, iii ,rndColor,strLen,sql,rs
    " f* I, F! W. ]. c/ i4 c2 A6 R2 r     Const cOdds = 5 '------------杂点出现的机率 7 Y7 V* ?" U  r' K" L7 Y9 o
         Const str="0123456789-"  
    ! a! {, B" L: \     strLen = len(pTel)
    " v% k% }5 R8 y3 ^     rndColor = ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) & ChrB(cint(rnd*255))
    3 H0 r" E# F- l3 a! ~6 ~     '-----------颜色的数据(字符,背景)  ( U1 t7 Y* n3 A6 m
         Dim vColorData(1)  
    . X: X4 X, Y8 L9 {% ?" S     'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '----蓝0,绿0,红0(黑色)  ( b8 C2 m' Z  f
         'vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) '----蓝250,绿236,红211(浅蓝色)  - i$ w! Y" {/ O) d+ Y
         'vColorData(0) = ChrB(197) & ChrB(106) & ChrB(49)     '---- 蓝0,绿0,红0(黑色)  , Q: p. n7 }3 j  }3 }& t- ]
         'vColorData(1) = ChrB(238) & ChrB(210) & ChrB(193) '-----蓝250,绿236,红211(浅蓝色)  
    5 `! W4 s" G6 Q% b, ]' W9 V     vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '---------蓝0,绿0,红0(黑色)  " M- j4 n- R' H1 U8 N
         vColorData(1) = ChrB(205) & ChrB(237) & ChrB(245) '------------蓝250,绿236,红211(浅蓝色)  
    ; ^8 Q& c: d1 E& b" y7 \% b     '--------------------随机产生字符  
    ) f: ^& o* M9 R% t8 W     Randomize
    * n2 N/ m% \2 N     Dim vCode() 1 _) a6 ?8 f9 {8 \
         redim vCode(strLen-1) % V; ^4 M! p  u
         For i = 0 To strLen-1
    ' ?3 N7 ~5 ?) F         vCode(i) =instr(1,str,mid(pTel,i+1,1),1)-1
    0 W4 K2 N3 I3 Y  u3 w6 B$ E2 q     Next  
    5 h" h5 q5 L1 Y( {+ b& H& G     '-----------字符的数据  
    3 y8 j9 g7 I( i/ p3 A' e" a     Dim vNumberData(11)  
    ' s. q) _2 l- r1 x+ D. B     'Verdana Font 4 X' `# v7 ]( Z# {! U4 v. R
         vNumberData(0) = "11111111111000111101110111011101110111011101110111011101110111011110001111111111"  
    - p7 F! W9 F  ?( y     vNumberData(1) = "11111111111101111110011111110111111101111111011111110111111101111110001111111111"  
    , \9 m' j4 `; ]1 F     vNumberData(2) = "11111111111000111101110111011101111110111111011111101111110111111100000111111111"  ! d. ?# {! s. `5 U, [) ~  w
         vNumberData(3) = "11111111111000111101110111111101111100111111110111111101110111011110001111111111"  . m/ I2 h2 q$ z# d
         vNumberData(4) = "11111111111110111111001111101011111010111101101111100001111110111111100111111111"  ! w: w7 H: Z7 R. J) V  W# R
         vNumberData(5) = "11111111110000011101111111011111110000111111110111111101110111011110001111111111"  
    2 c0 Z  ^1 }$ b2 t     vNumberData(6) = "11111111111000111101101111011111110000111101110111011101110111011110001111111111"  
    $ W$ Q/ ]& N( E' e9 ?& m0 u- J     vNumberData(7) = "11111111110000011101101111111011111101111111011111110111111101111111011111111111"  
    % @  x8 V3 M2 e5 J# N( n     vNumberData(8) = "11111111111000111101110111011101111000111101110111011101110111011110001111111111"  
    ' p: L" Z0 O# S     vNumberData(9) = "11111111111000111101110111011101110111011110000111111101111011011110000111111111"  " H; v9 ^/ Q5 ~- x( H7 k$ i
         vNumberData(10) = "11111111111111111111111111111111111111111100000111111111111111111111111111111111"  * k- H3 g$ f, y' |# I" V4 T3 R
         vNumberData(11) = "11111111111111111111111111111111111111111111111111111111111111111111111111111111"  % p0 e1 E& k( A0 I
         '-----------------输出图像文件头 <br> , Y  z7 V3 }# G) Q
         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) &_  
    ' f" M2 P8 E5 |0 e5 Z  |     ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_  
    ; Y0 v/ R" I, ?  u: E7 X( L     ChrB(0) & ChrB(0) & ChrB(strLen*8) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_  
    , M; R: p& m1 {9 y9 R     ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)  ( r& M& I* i  N/ \! L( p
         '------------------输出图像信息头  
    : j4 u. I- E* _% g1 z( V. H$ z     Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)&_ ) |& V. p! |  \9 Q! t# F7 z: H
         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 |/ ~# U- M  F! P
         ChrB(196) & ChrB(14) & ChrB(0) & ChrB(0) & ChrB(196) & ChrB(14)&ChrB(0) & ChrB(0) &_  
    ' b* @3 s# R: |2 ~; j3 O, ^      ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)  
    $ }; i3 [* D8 V! u* w4 `     For i = 9 To 0 Step -1     '----------历经所有行  
    0 \" {4 s5 [* d' X& S) p         For ii = 0 To strLen-1     '-------历经所有字  
    ; I( g( w& c- T8 V* ?! M' ^             For iii = 1 To 8 '--------历经所有像素  $ P1 w# \- M% h0 I- u7 V
                    '---------逐行、逐字、逐像素地输出图像数据  
    ' T- C0 [' ]! |& a- g% y3 b# N                If Rnd * 99 + 1 < cOdds Then '---------随机生成杂点    k* ^; h' e3 f' l
                         Response.BinaryWrite rndColor
    % U3 h: i3 e6 `- u) ~2 M2 N                Else  
    - i* q) a4 k! M: d; s; S                     Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 8 + iii, 1))    M0 A4 A( b- K( y/ K1 g) v
                    End If  3 B* Z0 B" S# c5 s5 [$ x
                 Next  3 y/ @0 o  x! ^& [" D+ _9 {/ ]
             Next  
    ( @: N% H  N  r1 g! {     Next  
    2 J" n( f, m$ h' G; m: pEnd Sub
    9 @& b7 R! E: n. p: Y3 f% ?%> % w/ e9 j4 z* Q5 e' |
    8 N' L9 C0 a& a' b+ g( R# g$ J
          将以上代码保存为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 下一条

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