ASP реализует код проверки формата GIF без компонента, друзья, которые нуждаются в коде проверки ASP, могут обратиться к нему.
<%
Опция явного оператора отображения
Class COM_GIFCODE_CLASS
Общественный шум, счет, ширина, высота, угол, смещение, граница
Частный график (), поля (3)
Private sub class_initialize ()
Рандомизировать
NOISY = 16 'вероятность интерференционной точки появляется
Count = 4 'Количество символов
Ширина = 80 'ширина изображения
Высота = 20 'высота изображения
Угол = 2 'объявленное случайным изменением
Offset = 20 'случайные изменения в смещении
Граница = 1 'размер кадра
Конец суб
Публичная функция create ()
Const ccharset = 123456789
Dim i, x, y
Dim VvalidCode: VvalidCode =
Dim Vindex
Redim Graph (ширина-1, высота-1)
Для i = 0, чтобы считать -1
vindex = int (rnd * len (ccharset))
VvalidCode = VvalidCode + Mid (ccharset, Videx + 1, 1)
SetDraw Vindex, я
Следующий
Create = VvalidCode
Конечная функция
Sub SetDot (px, py)
Если px * (width-px-1)> = 0 и py * (height-py-1)> = 0 тогда
График (px, py) = 1
Конец, если
Конец суб
Public Subtdraw (Pindex, Pnumber)
'Данные символов
Dim Dotdata (8)
Dotdata (0) = массив (30, 15, 50, 1, 50, 100)
Dotdata (1) = массив (1, 34, 30, 1, 71, 1, 100, 34, 1, 100, 93, 100, 86)
Dotdata (2) = массив (1, 1, 100, 1, 42, 42, 100, 70, 50, 100, 1, 70)
Dotdata (3) = массив (100, 73, 6, 73, 75, 6, 75, 100)
Dotdata (4) = массив (100, 1, 1, 1, 1, 50, 50, 35, 55, 100, 80, 50, 100, 1, 95)
Dotdata (5) = массив (100, 20, 70, 1, 20, 1, 1, 30, 1, 80, 30, 100, 70, 100, 100, 80, 100, 60, 70, 50, 30, 50 , 1, 60)
Dotdata (6) = массив (6, 26, 6, 6, 100, 6, 53, 100)
Dotdata (7) = массив (100, 30, 100, 20, 70, 1, 30, 1, 1, 20, 30, 70, 80, 70, 100, 30, 100, 80, 80, 1, 70, 100 , 30)
Dotdata (8) = массив (1, 80, 30, 100, 80, 100, 100, 70, 100, 20, 70, 1, 30, 1, 1, 20, 1, 40, 30, 50, 70, 50 , 100, 40)
Dim Versent: vextent = ширина / count
Маржа (0) = граница + vextent * (rnd * offset) / 100 + margin (1)
Margin (1) = vextent * (pnumber + 1) -border -Vextent * (rnd * смещение) / 100
Поля (2) = граница + высота * (rnd * смещение) / 100
Покрас (3) = высота -Сордер -Height * (rnd * смещение) / 100
Dim vStartx, Vendx, Vstarty, Vendy
Dim vwidth, Vdx, Vdx, Vdy, Vdeltat
Dim Vangle, Vlength
vwidth = int (маржа (1) -margin (0))
vheight = int (маржа (3) -margin (2))
'Начальные координаты
vstartx = int ((dotdata (pindex) (0) -1) * vwidth / 100)
vstarty = int
Dim I, J.
Для i = 1 до ubound (dotdata (pindex), 1)/2
Если dotdata (pindex) (2*i-2) <> 0 и dotdata (pindex) (2*i) <> 0 тогда
'Координаты конечной точки
vendx = (dotdata (pindex) (2 * i) -1) * vwidth / 100
Vendy = (dotdata (pindex) (2 * i+1) -1) * vheight / 100
Горизонтальный разрыв
vdx = vendx -vstartx
'Вертикальный разрыв
vdy = vendy -vstarty
'Угол наклона
Если vdx = 0, тогда
vanger = sgn (vdy) * 3.14/2
Еще
vanger = atn (vdy / vdx)
Конец, если
'Два координатного расстояния
Если sin (vanger) = 0, тогда
vlength = vdx
Еще
vlength = vdy / sin (vanger)
Конец, если
'Случайный угол вращения
Vangle = Vangle + (rnd -0,5) * 2 * Угол * 3.14 * 2/100
vdx = int (cos (vanger) * vlength)
vdy = int (sin (vanger) * vlength)
Если abs (vdx)> abs (vdy), то vdeltat = abs (vdx) else vdeltat = abs (vdy)
Для j = 1 до vdeltat
MARGE SETDOT (0) + VSTARTX + J * VDX / VDELTAT, MARGE (2) + VSTARTY + J * VDELTATAT
Следующий
vstartx = vStartx + vdx
vstarty = vstarty + vdy
Конец, если
Следующий
Конец суб
Public Sub Output ()
Response.expires = -9999
Ответ
Response.adheader cache-clm, без кэша
Response.contenttype = Image/Gif
'Тип файла
Response.binaryWrite Chrb (ASC (G)) и CHRB (ASC (I)) и CHRB (ASC (F))
'Информация о версии
Response.binaryWrite Chrb (ASC (8)) и Chrb (ASC (9)) и Chrb (ASC (A))
'Ширина экрана логики
Response.binaryWrite Chrb (ширина мод 256) и Chrb ((ширина / 256) мод 256)
'Высота экрана логики
Response.binaryWrite Chrb (высота мод 256) и Chrb (высота / 256 мод 256)
Response.binaryWrite Chrb (128) и Chrb (0) и Chrb (0)
'Глобальный цвет
Response.binaryWrite Chrb (255) и Chrb (255) и Chrb (255)
Response.binaryWrite Chrb (0) и Chrb (85) и Chrb (255)
'Идентификация изображения
Response.binarywrite chrb (ASC (,,,))
Response.binaryWrite CHRB (0) & CHRB (0) & CHRB (0) & CHRB (0)
'Ширина изображения
Response.binaryWrite Chrb (ширина мод 256) и Chrb ((ширина / 256) мод 256)
'Изображение высоко
Response.binaryWrite Chrb (высота мод 256) и Chrb (высота / 256 мод 256)
Response.binaryWrite Chrb (0) и Chrb (7) и Chrb (255)
Dim x, y, i: i = 0
Для y = 0 до высоты -1
Для x = 0 до ширины -1
Если rnd <nowisy / 100, то тогда
Response.binarywrite chrb (1-граф (x, y))
Еще
Если x * (x-width) = 0 или y * (y-height) = 0, тогда
Response.binarywrite chrb (график (x, y))
Еще
Если график (x-1, y) = 1 или график (x, y) или график (x, y-1) = 1 тогда
Response.binarywrite chrb (1)
Еще
Response.binarywrite chrb (0)
Конец, если
Конец, если
Конец, если
If (y * width + x + 1) mod 126 = 0 тогда
Response.binarywrite chrb (128)
I = i + 1
Конец, если
If (y * width + x + i + 1) mod 255 = 0 тогда
If (ширина * высота -y * ширина -x -1)> 255 тогда
Response.binaryWrite Chrb (255)
Еще
Response.binarywrite chrb (ширина * высота мод 255)
Конец, если
Конец, если
Следующий
Следующий
Response.binaryWrite Chrb (128) и Chrb (0) и Chrb (129) и Chrb (0) и Chrb (59)
Конец суб
Конечный класс
Dim Mcode
SET MCODE = новый COM_GIFCODE_CLASS
Session (getCode) = mcode.create ()
mcode.output ()
Установить Mcode = ничего
%>