Чтобы понять эти коды, в основном понять объект бинарных данных в ASP, AdoDB.Stream! Эта программа в основном использует Adodb.stream. Вчера нет хорошего механизма идентификации. Определите от 4321 до 89910, поэтому код изображения все еще безопаснее. Я видел метод насильственного растрескивания в Интернете. Пейдж будет запрещено представлять внешнее представление. Файл ASP: code.asp Файл данных: body.fix, head.fix Использование: <img src = "code.asp"> <% Response.buffer = true Numcode Функция numCode () Response.expires = -1 Ответ. Ответ. Dim Znum, i, J Dim Ados, Ados1 Рандомизируйте время Генерировать случайные четыре цифры: znum = cint (8999*rnd 1000) Пройти на сессию Session ("getCode") = Znum Цикл FOR должен поместить случайное число в массив 3 расчета 3, что удобно для обеспечения последующей преобразовании массива Dim Zimg (3), NSTR Nstr = cstr (Znum) Для i = 0 до 3 zimg (i) = cint (mid (nstr, i 1,1)))))))) Следующий Dim Pos 'Определите два двоичных объекта Adodb.stream для использования операции данных изображения: Установить ados = server.createObject ("adodb.stream") Ados.mode = 3 Ados.Type = 1 Ados.open Установить ados1 = server.createObject ("adodb.stream") Ados1.mode = 3 Ados1.Type = 1 Ados1.open 'Загрузите 0 ~ 9 цифровых данных 10x100, данные массива GBR, каждые 320 байтов, 10 номеров 3200byte 'BGR One Point, 10x10 точек. Линия из 10 баллов 30 байтов, окончание 00 00 00 00 Два -байт 32 байта, поэтому 10x100 меньше, чем длинное изображение, каждый номер 10x10 составляет 320 байтов 'Те, кто растут больше, чем широкий, невозможно закончить знак 0000, это 300 байт напрямую Это данные BMP 24 -битного. «Что касается головы, это также очень просто, включая длину и ширину, начало изображения и т. Д. Ados.LoadFromFile (server.mappath ("body.fix"))) Ados1.write Ados.read (1280) «Первый для цикла, и соответствующие четыре числа извлечены из количества случайных чисел, сгенерированных из 10x100 Но вертикальный массив для i = 0 до 3 Ados.position = (9-Zimg (i))*320 Ados1.position = i*320 Ados1.write Ados.read (320) следующий 'Очистите данные ADO, которые были использованы, и отрегулируйте новую головку изображения 54 байта файла заголовка Ados.LoadFromFile (server.mappath ("head.fix"))) Pos = lenb (ados.read ()) Ados.positation = POS 'Укажите позицию POS, вы можете добавить графические данные в положение 54 байта Второе для цикла, количество чисел чисел, от вертикальных блоков до горизонтальных числовых блоков Метод состоит в том, чтобы извлечь 4 раза 320 байтов для записи 30 байтов в объекты ADOS, а затем извлечь данные изображения, которые сдвигают вторую строку. 30 байтов связаны с конечной меткой с рядом 00 00 00 в BMP. для i = 0 до 9 шаг 1 для j = 0 до 3 Ados1.position = i*32 j*320 Ados.positation = pos 30*ji*120 Ados.write Ados1.read (30) следующий следующий Ados.positation = 0 Response.binaryWrite непосредственно отправляет данные изображения клиенту Response.contenttype = "Image/bmp" Response.binarywrite ados.read () Ados.close: установить Ados = ничего Ados1.close: установить ados1 = ничего Конечная функция |