日期:2014-05-17  浏览次数:20940 次

怎样把validatecode.asp修改成自己想要的图片的样子
这是validatecode.asp文件 <修改图片中字的大小,颜色等>

<%
Option Explicit
Response.Buffer = True
Response.Expires = -1
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Dim RndNum,ImgFileContent
Randomize Timer
RndNum = Cint(7999*Rnd+1000)
Session("cnbruce.com_ValidateCode") = Cstr(RndNum)
ImgFileContent=NumCode(RndNum)
Response.ContentType = "image/BMP"
Response.BinaryWrite ImgFileContent

Function NumCode(NumS)
  Dim NumI,NumJ
  Dim AdoM,AdoN
  Dim Arr_Img(4),NStr
  NStr=Cstr(NumS)
  For NumI=0 To 3
  Arr_Img(NumI)=Cint(Mid(NStr,NumI+1,1))
  Next
  Dim Position
  Set AdoM=Server.CreateObject("Adodb.Stream")
  AdoM.Mode=3
  AdoM.Type=1
  AdoM.Open
  Set AdoN=Server.CreateObject("Adodb.Stream")
  AdoN.Mode=3
  AdoN.Type=1
  AdoN.Open
  AdoM.LoadFromFile(Server.Mappath("validatebody.fix"))
  AdoN.Write AdoM.Read(1280)
  For NumI=0 To 3
  AdoM.Position=(9-Arr_Img(NumI))*320
  AdoN.Position=NumI*320
  AdoN.Write AdoM.Read(320)
  Next  
  AdoM.LoadFromFile(Server.Mappath("validatehead.fix"))
  Position=Lenb(AdoM.Read())
  AdoM.Position=Position
  For NumI=0 To 9 Step 1
  For NumJ=0 To 3
  AdoN.Position=NumI*32+NumJ*320
  AdoM.Position=Position+30*NumJ+NumI*120
  AdoM.Write AdoN.Read(30)
  Next
  Next
  AdoM.Position = 0
  NumCode = AdoM.Read()
  AdoM.Close:Set AdoM=Nothing
  AdoN.Close:Set AdoN=Nothing
End Function
%>

------解决方案--------------------
validatehead.fix

这个里面的东西贴出来看看


如果只是该百年验证码大小的话 可以用css样式看看
------解决方案--------------------
我也不知道
------解决方案--------------------
 一, fix是bmp的一种衍生格式,可用于asp生成验证码图形。   一个例子:   1 图象绘制完成后,将文件存为24位位图格式的BMP图象文件。   2 去除前54Byte内容.   3 改名为BODY+数字.FIX   4 修改CHECKCODE.ASP,调用你新做的这个文件.   (checkcode.asp 负责生成和输出验证码 1309 byte,head.fix 是54byte的BMP头,body.fix 数字0~9 10X100竖排的RGB阵列数据3200 byte )   就是生成彩色验证码的文件   1、checkcode.ASP 负责生成和输出验证码 1309 byte。   2、head.fix 是54byte的BMP头   3 、body.fix 数字0~9 10X100竖排的RGB阵列数据3200 byte   二, 高达模型的一种,涂装完成品,1/144比例,涂装精美,配件众多,但价格较高,详见gff词条   Fix 取整函数 (截断函数)   Rnd 取值范围: 0 ~ 1   0.00001 ~~ 0.999999   Rnd*11 取值范围:0 ~ 11   0.00001~~10.999999   Fix(Rnd*11)   取值范围:0 ~ 11的随机整数
------解决方案--------------------

查了哈 发觉这个可复杂了 汗死!
------解决方案--------------------
是用24位的BMP图片做出来的,head.fix是bmp的头部,里面包含了图片所有的信息,如:图片的大小,长宽,色深,压缩方式什么的。这个bmp头总共站54字节。做法很简单,下载个Uedit32打开图片,把54字节以后的所有数据都删除就OK了。body.fix是bmp文件的数据部分,就是我们看到的图像部分,只是把bmp头信息删除了。在说说图片的制作过程吧,其实head.fix和body.fix是完全不相干的2张图里的数据,不要以为是把一张图片用Uedit32分开,把54字节的头保存head.fix把后面的数据保存body.fix就可以了。
-----------------

楼主试试吧