- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章利用Adodb.Stream制作彩色验证码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Asp文件:Code.Asp 数据文件:body.Fix , Head.Fix 用法:<img src="code.asp"> 。
复制代码代码如下
Response.buffer = true NumCode Function NumCode() Response.Expires = -1 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" dim zNum,i,j dim Ados,Ados1 Randomize timer 生成随机四位数字: zNum = cint(8999*Rnd+1000) 传递给session Session("GetCode") = zNum 该for循环是将随机数字放入一个下标3的数组,便于提供给后面的阵列变换 dim zimg(3),NStr NStr=cstr(zNum) For i=0 to 3 zimg(i)=cint(mid(NStr,i+1,1)) Next dim Pos '定义二个 ADODB.Stream binary对象,作图像数据操作之用: set Ados=Server.CreateObject("Adodb.Stream") Ados.Mode=3 Ados.Type=1 Ados.Open set Ados1=Server.CreateObject("Adodb.Stream") Ados1.Mode=3 Ados1.Type=1 Ados1.Open '载入0~9的数字数据10x100的,Gbr的阵列数据,每个320字节,10个数字3200byte 'BGR一个点,10x10个点一个数字,一个点三个字节(二进制8位,16进制 00~FF) '一行10个点 30字节 + 行结束标记 00 00 二字节 32字节,所以一个10x100宽小于长的图像每个数字10x10是320字节 '长大于宽的则无行结束标记 0000,直接是300字节 这些就是BMP 24bit的数据详细信息了 ‘至于头部,也很简单,包含长宽,图像开始标记等等~~才54字节,远没jpg什么的复杂 Ados.LoadFromFile(Server.mappath("body.Fix")) Ados1.write Ados.read(1280) '第一个for循环,按生成的随机数字顺序从 10X100的数字阵列中提取出相应的四个数字 但是竖排的数字阵列 for i=0 to 3 Ados.Position=(9-zimg(i))*320 Ados1.Position=i*320 Ados1.write ados.read(320) next '清空已经用完的ADOS的数据,调入替换新的图像头54字节的头文件 Ados.LoadFromFile(Server.mappath("head.fix")) Pos=lenb(Ados.read()) Ados.Position=Pos '指定Pos位置,即可再偏移54字节的位置添加图形数据 第二个for循环,进行数字的阵列变换,由竖排的块转换为横排的数字块 方法是隔320字节抽取4次30字节写入ados对象,再抽取偏移第二行的图像数据 30字节是因为bmp 宽大于长时无00 00的行结束标记 for i=0 to 9 step 1 for j=0 to 3 Ados1.Position=i*32+j*320 Ados.Position=Pos+30*j+i*120 Ados.write ados1.read(30) next next Ados.Position=0 response.BinaryWrite直接向客户端发送图像数据 Response.ContentType = "image/BMP" Response.BinaryWrite Ados.read() Ados.Close:set Ados=nothing Ados1.Close:set Ados1=nothing End Function 。
最后此篇关于利用Adodb.Stream制作彩色验证码的文章就讲到这里了,如果你想了解更多关于利用Adodb.Stream制作彩色验证码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
使用 VBA 连接 Access DB 时遇到一个奇怪的错误。 VBA 代码如下所示: Sub DBC() Dim cn As ADODB.Connection Dim rs As A
我有一些现有的代码,使用不同的参数重复查询 SQL 数据库,我认为如果我将其更改为在开始时选择一大块数据到 ADODB.Recordset 中,然后在循环查询此记录集而不是数据库本身。 一个额外的警告
我用下面的代码填充了一个数据表—— OleDbDataAdapter oleDA = new OleDbDataAdapter(); DataTable dt = new DataTable(); o
... 或从 QueryTables 中提取记录。 最佳答案 试试这个排序: SQLDatabase_VBA.bas将来自 ADODB 或系统的 SQL 数据库与 Excel 中的 VBA 连接 sc
看,我遇到了一个问题,它开始让我有些头痛,因为我找啊找,但仍然不走运。 我必须从 C# 执行 DLL 的方法,这个 DLL 是 4 年前在 VB 6.0 中创建的,并且在 COM 中注册。它使用 AD
我一直在 Excel 中使用 ADODB 连接,以便连接到 MySql 数据库并检索值。 我的代码的本质如下: Public Function ODPH(B0 As Range, sqlstr As
Function filenum(filename,i) Dim st,s Set&nb
翻了半天MSDN后找到的,|后边是别名 复制代码代码如下: ANSI_X3.4-1968|iso-8859-1 ANSI_X3.4-1986|iso-8859-1&nb
1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的
在 Excel 2010 中,我正在编写一个将大文本文件加载到记录集中的 vb 应用程序。 文本文件是一个日志文件,用空格分隔,并且没有任何列标题的第一行。 我可以使用适当的 schema.ini 文
我想弄清楚如何在 VBA excel 中使用 ADODB 进行多行插入。 我的问题似乎是我无法找出用于这个简单任务的正确语法,即使在搜索之后我仍然不知道它为什么不起作用。 使用语句进行单次插入没有问题
我试图从包含 80,000 多行的工作表中检索数据并将这些值打印到工作表中,但是当我创建记录集并查看其记录计数时,它只包含 16,492 条记录。 我是 ADODB 连接的新手,所以我对问题所在感到困
我在Delphi 7中使用ADODB,对于UPDATE查询,我使用TADOConnection执行过程“ recordsAffected”变量获取了修改后的记录数。 像这样 : MyConnexio
JavaScript ADODBE 连接如何在查询中放置它们或它们之间。需要帮助: rs.Open("update customer set Name='" + txtname + "',F_Name
我正在使用 adodb 和 php。我需要将 html 插入数据库,并且需要知道在将其插入数据库之前转义引号的最佳方法?我尝试使用 pg_escape_string() 但它似乎仍然没有插入。 执行此
我在 Excel 中有一个表,该表通过与 Access 数据库的连接进行填充。我正在尝试编写一个宏,允许您从此表中删除各个行。我使用 ADODB 连接将删除命令传递给 Access,效果很好。但是,在
我必须在我的 Delphi 应用程序中创建 dbf 文件。 对于本例,我使用 ADODB。 连接字符串: const ConnStringDBF = 'Driver={Microsoft dB
所以我是 Visual Basic 的新手,继承了我现在需要处理的 VB6 代码。现在,我正在尝试使用 ADODB.RecordSet 更新 SQL 数据库。我有一个 Select SQL 语句,可以
在 Excel 中,我使用 ADODB 连接来构建记录集,从其自己的工作簿中的工作表中获取数据,如下所示: Public Sub test() Dim cnn As New ADODB.Con
我想知道为什么当我把 sql ADODB在一个函数中查询它会产生以下错误: Fatal error: Call to a member function Execute() on a non-obje
我是一名优秀的程序员,十分优秀!