Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #59, НОЯБРЬ 2003 г.

Дадим отпор грубой силе!

Докучаев Дмитрий aka Forb

Xakep, номер #059, стр. 059-062-2


Установка модуля GD

После того как все либы скачаны, можно приступать к установке перлового модуля. Сливаем его по адресу www.perl.com/CPAN/authors/id/L/LD/LDS/GD-2.07.tar.gz и распаковываем. Теперь запускаем скрипт Makefile.PL (при помощи интерпретатора perl). У тебя спросят, включать ли поддержку JPEG, PNG, Freetype и XPM. На JPEG и PNG отвечай положительно, а на оставшиеся два можешь отказать. В нашем примере они тебе не понадобятся.

В результате всех проделанных манипуляций сценарий создаст новый файл Makefile. Теперь можешь смело набирать make и make install. Если ты все сделал правильно, то установка пройдет без ошибок.

Гораздо больше не повезло обладателям хостинга с неустановленной библиотекой libgd. Здесь придется немного помучиться, чтобы заставить GD работать. Во-первых, инсталлировать либы надо в отдельную директорию, к которой есть полный доступ (например, /home/user/gdlib). Для этого укажи скрипту configure параметр --prefix и путь для установки. Во-вторых, Makefile.PL пускается с опцией LIB=/path/to/lib. Так скрипт сможет найти все необходимые библиотеки для правильной работы модуля.

Клепаем картинку

Чтобы создать изображение (пока пустое), используется конструктор new объекта GD. Конструктору необходимо передать размер картинки по осям X и Y. Например, если тебе нужно создать картинку 40х40, то напиши следующий код:

$image = GD::IMAGE->new(40, 40);

Правда, перед этим не забудь поставить строку use GD. Таким образом ты сообщишь интерпретатору, чтобы он подгрузил необходимый модуль. Сразу после вызова конструктора полезно определить цвета, которые будут использоваться в твоей картинке. Пусть это будет черный (фон) и белый (цифры) цвет:

$white = $image->colorAllocate(255, 255, 255);

$black = $image->colorAllocate(0, 0, 0);

После того как изображение создано, с ним надо что-то сделать. GD дает огромный выбор возможностей наложения различных геометрических фигур на картинку. Нас же интересует обычный прямоугольник :). Мы положим сгенерированный цифровой код на черный квадрат размером 50х50. Рисовать сам прямоугольник будем при помощи метода rectangle:

$image->rectangle(0, 0, 50, 50, $black);

Параметры у метода rectangle следующие: начальные и конечные координаты будущего прямоугольника, а также цвет геометрической фигуры.

После вызова rectangle мы получаем незакрашенный прямоугольник. Теперь нам надо сделать внутри него заливку. На помощь приходит метод fill, заливающий указанную зону определенным цветом:

$image->fill(49, 49, $black);

Теперь осталось отобразить какое-нибудь число на картинке. Пусть это будет значение 1000. Надпись мы сделаем методом string:

$image->string(gdGiantFont, 5, 15, "1000", $white);

Константа gdGiantFont указывает на размер шрифта. Мы выбрали самый большой шрифт. Далее идут начальные координаты для строки, потом сама строка и ее цвет.

Назад на стр. 059-062-1  Содержание  Вперед на стр. 059-062-3
Фильм Private-Solid gold. такси грузчики
<<< НАЗАД ||| ГЛАВНАЯ