يقوم ASP بتنفيذ رمز التحقق من تنسيق GIF دون مكون ، يمكن للأصدقاء الذين يحتاجون إلى رمز التحقق من ASP الرجوع إليه.
<٪
خيار عبارة عرض صريح
فئة com_gifcode_class
صاخبة عامة ، العد ، العرض ، الطول ، الزاوية ، الإزاحة ، الحدود
الرسم البياني الخاص () ، الهامش (3)
sub sub class_initialize ()
عشوائي
صاخبة = 16 'يظهر احتمال نقطة التداخل
العد = 4 'كمية الحرف
عرض = 80 'عرض الصورة
ارتفاع = 20 'ارتفاع الصورة
زاوية = 2 'المعلن عن تغيير عشوائي
إزاحة = 20 'تغييرات عشوائية للإزاحة
الحدود = 1 'حجم الإطار
نهاية الفرعية
Create () الوظيفة العامة ()
const ccharset = 123456789
خافت أنا ، x ، ذ ، ص
Dim VvalidCode: vvalidcode =
قاتمة VINDEX
Redim الرسم البياني (العرض 1 ، الارتفاع 1)
ل I = 0 لحساب -1
VINDEX = int (RND * LEN (CHAREST))
vvalidcode = vvalidcode + mid (ccharset ، videx + 1 ، 1)
setdraw vindex ، أنا
التالي
إنشاء = vvalidcode
وظيفة نهاية
Sub Setdot (PX ، PY)
إذا px * (Width-Px-1)> = 0 و Py * (Hight-Py-1)> = 0 ثم
الرسم البياني (PX ، PY) = 1
إنهاء إذا
نهاية الفرعية
setdraw العام العام (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 ، 50 ، 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)
قفص الدوار: vextent = العرض / العد
الهامش (0) = الحدود + vextent * (RND * إزاحة) / 100 + الهامش (1)
الهامش (1) = vextent * (pnumber + 1) -border -Vextent * (RND * Offset) / 100
الهامش (2) = الحدود + الارتفاع * (RND * إزاحة) / 100
الهامش (3) = الارتفاع -الحدود -HIEGHT * (RND * إزاحة) / 100
Dim Vstartx ، Vendx ، Vstarty ، Vendy
Dim Vwidth ، VDX ، VDX ، Vdy ، Vdeltat
خافت Vangle ، Vlength
vwidth = int (الهامش (1) -margin (0))
VHeight = int (الهامش (3) -margin (2))
"بدء الإحداثيات
vStartX = int ((dotdata (pindex) (0) -1) * vwidth / 100)
vStarty = int
خافت أنا ، ي
ل 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)
إنهاء إذا
اثنين من المسافة التنسيق
إذا كانت الخطيئة (Vangle) = 0 ثم
Vlength = VDX
آخر
Vlength = Vdy / Sin (Vangle)
إنهاء إذا
'زاوية الدوران العشوائية
Vangle = Vangle + (RND -0.5) * 2 * angle * 3.14 * 2/00
vdx = int (cos (vangle) * vlength)
vdy = int (sin (vangle) * vlength)
إذا كانت ABS (VDX)> ABS (vdy) ثم vdeltat = abs (vdx) آخر vdeltat = abs (vdy)
ل j = 1 إلى vdeltat
setDot Margin (0) + VSTARTX + J * VDX / VDELTAT ، MARGIN (2) + VSTARTY + J * VDELTATAT
التالي
vStartX = vStartX + VDX
vstarty = vstarty + vdy
إنهاء إذا
التالي
نهاية الفرعية
الإخراج الفرعي العام ()
استجابة. expires = -9999
استجابة
استجابة
استجابة. contenttype = صورة/gif
نوع الملف
استجابة.
معلومات الإصدار
استجابة.
عرض شاشة المنطق
استجابة.
ارتفاع شاشة المنطق
استجابة.
استجابة.
قائمة الألوان العالمية
استجابة.
استجابة.
تحديد الصورة
استجابة.
استجابة.
عرض الصورة
استجابة.
الصورة عالية
استجابة.
استجابة.
Dim x ، y ، i: i = 0
لـ y = 0 إلى الارتفاع -1
لـ x = 0 للعرض -1
إذا كان rnd <صاخبة / 100 ثم
استجابة.
آخر
إذا كانت x * (x-width) = 0 أو y * (y-leaight) = 0 ثم
استجابة.
آخر
إذا كان الرسم البياني (x-1 ، y) = 1 أو رسم بياني (x ، y) أو الرسم البياني (x ، y-1) = 1 ثم
استجابة.
آخر
استجابة.
إنهاء إذا
إنهاء إذا
إنهاء إذا
if (y * width + x + 1) mod 126 = 0 ثم
استجابة.
i = i + 1
إنهاء إذا
if (y * width + x + i + 1) mod 255 = 0 ثم
if (العرض * الارتفاع -y * العرض -x -1)> 255 ثم
استجابة.
آخر
استجابة.
إنهاء إذا
إنهاء إذا
التالي
التالي
Response.BinaryWrite CHRB (128) و CHRB (0) و CHRB (129) و CHRB (0) و CHRB (59)
نهاية الفرعية
الطبقة النهائية
Dim Mcode
تعيين mcode = جديد com_gifcode_class
الجلسة (getCode) = mcode.create ()
mcode.output ()
تعيين mcode = لا شيء
٪>