ASP는 구성 요소가없는 GIF 형식 확인 코드를 구현하고 ASP 검증 코드가 필요한 친구가이를 참조 할 수 있습니다.
<%
옵션 명시 적 '디스플레이 명령문
클래스 com_gifcode_class
공개 시끄러운, 수, 너비, 높이, 각도, 오프셋, 테두리
개인 그래프 (), 여백 (3)
private sub class_initialize ()
무작위 화
Noisy = 16 '간섭 지점의 확률이 나타납니다.
카운트 = 4 '문자 수량
너비 = 80 '사진 너비
높이 = 20 '사진 높이
각도 = 2 '는 무작위 변화를 발표했습니다
오프셋 = 20 '무작위 변경이 오프셋으로 변경됩니다
경계 = 1 '프레임 크기
종료 서브
공개 함수 create ()
const ccharset = 123456789
Dim I, X, y
Dim vvalidCode : vvalidCode =
희미한 vindex
REDIM 그래프 (너비 -1, 높이 -1)
i = 0의 경우 -1을 계산합니다
vindex = int (rnd * len (ccharset))
vvalidcode = vvalidcode + mid (ccharset, videx + 1, 1)
SetDraw vindex, i
다음
생성 = vvalidcode
엔드 기능
하위 세트 도트 (PX, PY)
px * (width-px-1)> = 0 및 py * (높이 -py-1)> = 0 인 경우
그래프 (px, py) = 1
끝 If
종료 서브
공개 서브 세트 드래프 (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 VERTENT : VEXTENT = 너비 / 카운트
여백 (0) = Border + Vextent * (RND * 오프셋) / 100 + 마진 (1)
여백 (1) = vextent * (Pnumber + 1) -Border -Vextent * (RND * 오프셋) / 100
여백 (2) = 테두리 + 높이 * (RND * 오프셋) / 100
여백 (3) = 높이 -border -Height * (RND * 오프셋) / 100
Dim Vstartx, Vendx, Vstarty, Vendy
Dim vwidth, vdx, vdx, vdy, vdeltat
희미한 vangle, vlength
vwidth = int (마진 (1) -Margin (0))
vheight = int (마진 (3) -마진 (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이면
vangle = sgn (vdy) * 3.14/2
또 다른
vangle = atn (vdy / vdx)
끝 If
'두 좌표 거리
죄 (vangle) = 0이면
vlength = vdx
또 다른
vlength = vdy / sin (vangle)
끝 If
'임의의 회전 각도
vangle = vangle + (rnd -0.5) * 2 * 각도 * 3.14 * 2 /100
vdx = int (cos (vangle) * vlength)
vdy = int (sin (vangle) * vlength)
if abs (vdx)> abs (vdy) vdeltat = abs (vdx) else vdeltat = abs (vdy)
j = 1에서 vdeltat
SetDot 마진 (0) + VSTARTX + J * VDX / VDELTAT, 마진 (2) + VSTARTY + J * VDELTATAT
다음
VSTARTX = VSTARTX + VDX
vstarty = vstarty + vdy
끝 If
다음
종료 서브
공개 하위 출력 ()
응답 .expires = -9999
응답. ADDHEADER PRAGMA, NO 캐시
응답. Adheader Cache-Clm, No-Cache
응답 .ContentType = 이미지/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) mod 256)
'논리 화면 높이
Response.BinaryWrite chrb (높이 모드 256) 및 chrb (높이 / 256 mod 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 (0) & chrb (0) & chrb (0) & chrb (0)
'이미지 너비
response.binarywrite chrb (너비 모드 256) 및 chrb ((폭 / 256) mod 256)
'이미지 높이
Response.BinaryWrite chrb (높이 모드 256) 및 chrb (높이 / 256 mod 256)
Response.BinaryWrite chrb (0) 및 chrb (7) & chrb (255)
Dim X, y, i : i = 0
y = 0에서 높이 -1
x = 0에서 너비 -1
rnd <noisy / 100이면
응답.
또 다른
x * (x-width) = 0 또는 y * (y-height) = 0 인 경우
response.binarywrite chrb (그래프 (x, y))
또 다른
그래프 (x-1, y) = 1 또는 그래프 (x, y) 또는 그래프 (x, y-1) = 1 인 경우
응답 .BinaryWrite chrb (1)
또 다른
응답 .BinaryWrite chrb (0)
끝 If
끝 If
끝 If
if (y * width + x + 1) mod 126 = 0
응답 .Binarywrite chrb (128)
i = i + 1
끝 If
if (y * width + x + i + 1) mod 255 = 0
if (너비 * 높이 -y * 너비 -x -1)> 255
응답 .Binarywrite chrb (255)
또 다른
응답.
끝 If
끝 If
다음
다음
response.binarywrite chrb (128) & chrb (0) & chrb (129) & chrb (0) & chrb (59)
종료 서브
수업 종료
Dim McOde
mcode = new com_gifcode_class를 설정합니다
세션 (getCode) = mcode.create ()
mcode.output ()
mcode = 아무것도 설정하지 않습니다
%>