
Главный джедай
   
Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ
Репутация: 4 Всего: 83
|
Цитата(korob2001 @ 27.11.2006, 22:47 ) | Без граф. библиотек можно обойтись, но тогда твой счётчик будет текстовый |
Тут ты не прав... Запросто можно сгенерить вручную куртинку... Помнится лет 6 назад я писал такой счётчик... Пример его работы:  Правда есть у этого скрипта один минус. Он генерит картинку в формате BMP. Можно сделать и в GIF, но в тот раз я с этим не стал разбираться, а сейчас - некогда... :-))))) Вызов скрипта осуществляется следующим образом: <img scr="http://www.domain.ru/cgi-bin/counter.cgi?user=Name&digit=5"> В этом вызове определяется пользователь, для которого нужно вернуть значение счетчика и количество цифр в возвращаемом изображении. Формат файла записей для скрипта следующий: Код | Vitalij||13995 Sasha||237 Booka||6 Igos||3 |
Если пользователь найден, то значение счетчика для него увеличивается на 1 и сохраняется в файле. Если запрошенный пользователь не существует, то производится выход из программы. Далее происходит вычисление размеров изображения в соответствии с запросом пользователя. Сразу отмечу, что в качестве исходных используются изображения цифр формата 16х24 пикселов. После этого происходит формирование заголовка изображения в соответствии с вычисленными размерами. В качестве самих изображений цифр используются обыкновенные битовые карты, записанные непосредственно в самом файле скрипта, что приводит к увеличению его размеров, но позволяет обойтись без файлов с изображениями цифр и, как следствие, без дополнительный файловых операций. После того, как заголовок сформирован, происходит формирование непосредственно самого графического изображения цифр счетчика, после чего оно отправляется в браузер пользователя. В некоторых случаях, если не увидите в браузере изображение, то попробуйте в качестве типа указать: image/x-bitmap. В файле скрипта описаны массивы @header, @dig и @logo представляющие, соответственно, заголовок для изображения, массив из кодов изображений десяти цифр и изображение небольшого логотипчика, выводимого, перед цифрами в счетчике. Код | #!/usr/bin/perl
@header=( 0x42,0x4D,0xF6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x28,0x00, 0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x00,0xFC,0x84,0x84,0x00,0x00,0x00, 0x00,0x83,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x83,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x83,0x00,0x00, 0x00,0x83,0x00,0x00,0x00,0x00);
@dig=( [0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x10,0x00,0x01,0x10,0x00,0x01,0x11, 0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x01,0x10,0x00,0x01,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x01,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x11,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x01,0x11, 0x11,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x00,0x11, 0x11,0x11,0x00,0x00,0x01,0x11,0x00,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x01,0x11, 0x11,0x11,0x11,0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x11, 0x11,0x00,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x11,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x10,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x10,0x00,0x01,0x11,0x00,0x01,0x11, 0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x11, 0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x11, 0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x00,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x00,0x11,0x11,0x10,0x00,0x11,0x11, 0x11,0x00,0x01,0x11,0x10,0x00,0x11,0x11,0x11,0x10,0x00,0x11,0x10,0x00,0x11,0x11, 0x11,0x11,0x00,0x01,0x10,0x00,0x11,0x11,0x11,0x11,0x10,0x00,0x10,0x00,0x11,0x11, 0x11,0x11,0x11,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x10,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x11, 0x11,0x00,0x00,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11, 0x11,0x10,0x11,0x11,0x10,0x00,0x01,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x01,0x11, 0x11,0x10,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11, 0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11, 0x11,0x10,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x01,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11, 0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x01,0x11, 0x11,0x00,0x01,0x00,0x00,0x01,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11, 0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x01,0x11,0x11,0x11, 0x11,0x11,0x10,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11, 0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11, 0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11, 0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11, 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x01,0x11,0x11,0x00,0x00,0x11,0x11, 0x10,0x01,0x11,0x11,0x10,0x00,0x01,0x11,0x11,0x00,0x11,0x11,0x11,0x00,0x00,0x11, 0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x11, 0x11,0x10,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x00,0x00,0x11,0x10,0x00,0x01,0x11, 0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11, 0x11,0x10,0x00,0x11,0x00,0x00,0x01,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x11,0x11, 0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x11,0x11,0x11, 0x11,0x00,0x00,0x01,0x00,0x00,0x11,0x11,0x11,0x00,0x00,0x11,0x10,0x00,0x01,0x11, 0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11,0x11,0x00,0x01,0x11, 0x11,0x10,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11],
[0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x11,0x11,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11, 0x11,0x11,0x10,0x00,0x00,0x10,0x00,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x11, 0x11,0x10,0x00,0x11,0x11,0x00,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11,0x11,0x10,0x00,0x11, 0x11,0x00,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x00,0x01,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x01,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11]);
@logo=( 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x01,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x01,0x11,0x11,0x10,0x11,0x11, 0x11,0x11,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x01,0x11,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x00,0x00,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x11,0x11,0x11, 0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x11,0x00,0x11,0x10,0x11,0x11,0x11, 0x11,0x11,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x11,0x11, 0x11,0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11);
%FORM={}; $x_size=16; $y_size=24;
&parseform;
$user=$FORM{'user'}; $digits_in_image=$FORM{'digit'};
open COUNTF, "<counter.dat"; @countrec=<COUNTF>; close COUNTF; $counter=0; for ($i=0; $i<@countrec; $i++) { if ($countrec[$i]=~/$FORM{user}/) { @records=split(/\|\|/, $countrec[$i]); $records[1]++; $counter=$records[1]; $countrec[$i]=$records[0]."||".$records[1]."\n"; } } exit if ($counter==0); open COUNTF, ">counter.dat"; flock COUNTF, 2; print COUNTF @countrec; flock COUNTF, 8; close COUNTF;
$digits_in_image+=1;
$image_size=$digits_in_image*$x_size*$y_size*2; # полный размер изображения $ret_size=$image_size+118; # полный размер файла
@ret=@header;
$ret[2]=$ret_size-(int($ret_size/256)*256); # младший байт размера файла $ret[3]=int($ret_size/256); # старший байт размера файла $ret[34]=$image_size-(int($image_size/256)*256);# младший байт размера изображения $ret[35]=int($image_size/256); # старший байт размера изображения $ret[18]=$digits_in_image*$x_size; # размер изображения по оси Х
@count=split (//, $counter); if (($digits_in_image-1)>length($counter)) { for ($i=0; $i<($digits_in_image-1-length($counter)); $i++) { unshift @count, 0; } }
for ($i=0; $i<24; $i++) { for ($j=0; $j<8; $j++) { push @ret, $logo[$i*8+$j]; } for ($k=0; $k<@count; $k++) { for ($j=0; $j<8; $j++) { push @ret, $dig[$count[$k]][$i*8+$j]; } } }
# ---------- For write to file ----------- # open BMPF, ">counter.bmp"; # foreach $byte (@ret) # { print BMPF chr($byte); # } # close BMPF; # ----------------------------------------
# -------- For write to brouser ---------- print "Content-Type: image/bmp\n\n"; foreach $byte (@ret) { print chr($byte); } # ----------------------------------------
sub parseform { local($name, $value, $pair, $buffer, @pairs);
@pairs=split(/&/, $ENV{'QUERY_STRING'}); foreach $pair (@pairs) { ($name, $value)=split(/=/, $pair); $value=~tr/+/ /; $value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name}=$value; } return(1); } |
--------------------
Чем дальше в лес, тем толще партизаны...Цитата(igorold @ 1.5.2016, 17:40 ) | Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. |
|