下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

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

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

    [LV.1]初来乍到

    跳转到指定楼层
    1
    发表于 2009-4-16 08:44:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    作用:用ASP程序将页面中的电话号码生成图片格式。 以下是引用片段:
    2 U$ k8 g9 o- P' G& @* L* N* E% B. N) F<% 2 k3 b8 v2 l: a3 M. I0 B3 J% [
    Call Com_CreatValidCode(Request.QueryString("tel"))  
    : h" r' p, l# m8 m) p' P, WPublic Sub Com_CreatValidCode(pTel)  . g; U! u$ r* |1 x0 Z* J6 V) d/ @& V/ _
         '----------禁止缓存  9 {. V: Q. P9 ~# B" \) |
         Response.Expires = 0 & Y% `7 z+ _0 ^1 R& M' h  |
         Response.AddHeader "Pragma","no-cache"  * [% N( |5 M" I! @5 @/ d
         Response.AddHeader "cache-ctrol","no-cache"  
    # l+ ]+ l$ ]4 K     Response.C  
    - Q$ \7 R; ]  z2 z- W     Randomize  - a$ ~  r# q3 Y1 F4 M
         Dim i, ii, iii ,rndColor,strLen,sql,rs
    8 m% }0 K, Q1 T6 z     Const cOdds = 5 '------------杂点出现的机率
    0 C7 k* _8 e6 m) l0 O% u  U     Const str="0123456789-"  9 E! x1 _1 K5 m) \! `
         strLen = len(pTel) " {6 t; z/ k, s5 c4 z$ Y4 k
         rndColor = ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) & ChrB(cint(rnd*255)) 1 T% \0 j9 k( d! R+ a; X/ l6 G/ Z
         '-----------颜色的数据(字符,背景)  , C# N# Q0 t( j; p8 }
         Dim vColorData(1)  * A) |6 T( ?: `1 r9 H+ r) @
         'vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '----蓝0,绿0,红0(黑色)  , {' n9 i$ C8 a% N* f/ Q; }
         'vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) '----蓝250,绿236,红211(浅蓝色)  ' c3 X2 H1 C9 L# Y
         'vColorData(0) = ChrB(197) & ChrB(106) & ChrB(49)     '---- 蓝0,绿0,红0(黑色)  
    " [$ Z# j: r2 }; f' H     'vColorData(1) = ChrB(238) & ChrB(210) & ChrB(193) '-----蓝250,绿236,红211(浅蓝色)  * ]3 Y% I2 S7 k# A' X" x( P
         vColorData(0) = ChrB(0) & ChrB(0) & ChrB(0)     '---------蓝0,绿0,红0(黑色)  
    + b; i, O; J1 F3 v3 S3 _. ?     vColorData(1) = ChrB(205) & ChrB(237) & ChrB(245) '------------蓝250,绿236,红211(浅蓝色)  
    6 k, K7 C  ~* K2 p, R9 A7 c4 w) r     '--------------------随机产生字符  
    : z7 B! {5 [2 _# m     Randomize + N( I1 c# B: Y( b) X. S" P5 ~
         Dim vCode() % m6 n) B' x- l  F7 k8 q
         redim vCode(strLen-1)
    3 J+ H1 m* C! C# L. v% F     For i = 0 To strLen-1
    $ p( x* W7 k: H9 @% M, R         vCode(i) =instr(1,str,mid(pTel,i+1,1),1)-1 6 h, h6 R9 T4 g- h' V
         Next  
    2 g$ P, X  ]+ i# o' @+ [  z     '-----------字符的数据  
    ; x+ O* }  q5 d     Dim vNumberData(11)  
    6 r# `; o# S+ g* b  A1 L     'Verdana Font : K9 C2 V5 |0 i" j$ {
         vNumberData(0) = "11111111111000111101110111011101110111011101110111011101110111011110001111111111"  
    ! s- L% _: W% w4 X. r% S6 y' M2 R     vNumberData(1) = "11111111111101111110011111110111111101111111011111110111111101111110001111111111"  9 v. d/ C  s0 r" h5 N5 {
         vNumberData(2) = "11111111111000111101110111011101111110111111011111101111110111111100000111111111"  
    : Y& [# y$ e" ?5 a( Y1 n     vNumberData(3) = "11111111111000111101110111111101111100111111110111111101110111011110001111111111"  - C6 @$ `- q  b' d6 @
         vNumberData(4) = "11111111111110111111001111101011111010111101101111100001111110111111100111111111"  + _) l5 s9 L; b/ T
         vNumberData(5) = "11111111110000011101111111011111110000111111110111111101110111011110001111111111"  4 M+ h8 v/ x: d5 ~+ M) `
         vNumberData(6) = "11111111111000111101101111011111110000111101110111011101110111011110001111111111"  
      A6 H) M/ Y5 l# a1 i     vNumberData(7) = "11111111110000011101101111111011111101111111011111110111111101111111011111111111"  # I2 N/ @& Q( Z# s
         vNumberData(8) = "11111111111000111101110111011101111000111101110111011101110111011110001111111111"  8 q/ x6 W: F4 `! R! q
         vNumberData(9) = "11111111111000111101110111011101110111011110000111111101111011011110000111111111"  * j! j+ L. r( A+ p: ]. L/ A& E
         vNumberData(10) = "11111111111111111111111111111111111111111100000111111111111111111111111111111111"  ' {3 |8 D0 j: x# S6 D4 ~
         vNumberData(11) = "11111111111111111111111111111111111111111111111111111111111111111111111111111111"  
    ' v8 W, h: m: Q4 ?. ?     '-----------------输出图像文件头 <br> - L9 G- V' i7 S6 |
         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) &_  # I1 y4 j$ o) q4 j/ g% D% Y4 u- S
         ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_  ' \, F9 i. z7 ]3 `. I4 X& a( [
         ChrB(0) & ChrB(0) & ChrB(strLen*8) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_  " o# t7 ]% x* @: n& P
         ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)  
    ; }5 ?5 g  T* w) \. \: Q+ C     '------------------输出图像信息头  * R9 H) m8 c* P  L2 I% l9 ^( A
         Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)&_ / y" V' w& o+ v% W# F
         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)&_  $ Q' Q+ ~. M$ R8 ^8 r  {
         ChrB(196) & ChrB(14) & ChrB(0) & ChrB(0) & ChrB(196) & ChrB(14)&ChrB(0) & ChrB(0) &_  - ?5 j$ P/ t! u* ?' T) z, Y" j
          ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)  1 c4 Q% z2 ?7 I  R  a% l
         For i = 9 To 0 Step -1     '----------历经所有行  ' A3 d7 Y$ S% B8 @" _% h. r: t
             For ii = 0 To strLen-1     '-------历经所有字  
    6 j" g. A% J' g/ V' q( a             For iii = 1 To 8 '--------历经所有像素  
    ; ?) O' ^9 e/ a# w% c3 }                '---------逐行、逐字、逐像素地输出图像数据  
    : Y" t/ D3 i7 p3 Z+ y. s2 `; F                If Rnd * 99 + 1 < cOdds Then '---------随机生成杂点  
    $ D& o* j  z+ B8 @! E5 D                     Response.BinaryWrite rndColor 6 W* `$ E7 X# M
                    Else  , v, K! a, j3 Y4 A* m# \
                         Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 8 + iii, 1))  
    / n) P7 i  a* Y. Q! L1 n# x                End If  
    5 O: |/ V2 k# P             Next  
    ( T0 {1 M. J" x4 _9 F         Next  
    9 Z8 b2 p& |4 Y% j( w7 A     Next  : ~" F0 K4 i6 g1 i  b# B, y% M
    End Sub # Q" G  m  W0 u8 D' E3 H& W
    %> 1 f; R/ F+ l0 I  ^4 A
    ) W+ o1 y/ x5 ~4 ]- a* V9 f$ }
          将以上代码保存为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 下一条

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