Еженедельник Свет в Интернет

Главная

Новости

Статьи и обзоры
  Горожанин
  Обнинск в Internet
  Web Design
  Hardware
  Software
  Безопасность
  Серфинг
  Игродром
  Relax
  Технологии
  Web-обзор
  Интернет-ликбез
  Опросник
  УП-Технологии
  ART.net

Ссылки

Архив

О нас

Контакты

Форумы


Основатель:
К.Николаенко

Главный Редактор:
С.Коротков

Web Design:
Neutron


Наш спонсор






Порт POPULAR.RU
POPULAR.RU RegionalBanner Network.






Океан


НПП Метра - промышленные электронные автомобильные вагонные весы
Goldy Interior - салон офисной мебели: кабинеты руководителей, мебель для персонала

= Web-Дизайн =

 

ГРАФИКА В РНР: СОЗДАЕМ И МЕНЯЕМ РИСУНКИ

Андрей Гончаренко

Веб-мастерам часто бывает необходимо динамически создавать и (или) изменять рисунки на своих страницах. Это требуется в тех случаях, когда изображения несут не исключительно декоративную функцию, а содержат некую полезную информацию. И если веб-мастер знаком с основами РНР, то решение этой задачи становится более чем тривиальным. Для этого достаточно подключить модуль расширения GD.

Загрузить модуль GD можно с адреса www.boutell.com/gd. для его подключения необходимо убрать знак комментария в строке extension=php_gd.dll (для сервера с OC Windows; в случае Unix-систем расширение файла может быть другим) в php.ini и перезапустить веб-сервер. Различные версии GD могут работать с разными форматами графических файлов. Так, при использовании библиотеки версии 1.6 и ниже можно создавать изображения в форматах JPEG, GIF, SWF, но не PNG. Более новые версии позволяют использовать PNG, но отказываются поддерживать формат GIF из лицензионных соображений. Все приведенные ниже примеры будут работать при использовании GD версии 2.0.1 или выше.

СОЗДАНИЕ ГРАФИЧЕСКОГО СЧЕТЧИКА ПОСЕЩЕНИЙ

Важная особенность работы с модулем GD заключается в том, что скрипт, формирующий новый рисунок, не должен выводить что-либо кроме самого рисунка (то есть в нем не должно быть вызовов echo, print и подобных им функций). Впоследствии изображение, сформированное РНР-скриптом, выводится браузером методом указания URL этого скрипта в качестве источника данных, например,
<img src="pic.php">.
Создание нового рисунка в РНР начинается либо с создания новой чистой "страницы" (canvas) для рисования, либо с загрузки и модификации уже существующего изображения. Но перед тем как начать процесс вывода графической информации, необходимо выбрать его формат (тип MIME) посредством вызова функции header(str). Например, для формата PNG необходимо использовать следующий код:

header('Content-type: image/png");

Далее для создания области для рисования необходимо вызвать функцию int imagecreate (int x_size, int y_size), которой передать в качестве параметров x_size и y_size, соответственно, ширину и высоту (в пикселах) формируемой картинки; при этом функция вернет идентификатор созданной области для рисования. Если же мы хотим взять за основу уже имеющуюся картинку, то, в зависимости от ее формата, нужно вызвать функцию imagepng, или int imagestring(int im, int font, int x, int y, string s, int col), которой нужно передать: идентификатор области рисования, размер шрифта (1-5), координату Х начала текста, координату Y начала текста, сам текст и цвет текста соответственно. Для определения цвета используется конструкция вида:

$white=ImageColorAllocate($im, 255, 255, 255)

Последние три числовых параметра - RGB-составляющие требуемого цвета. Но поскольку каждый раз указывать их несколько нерационально, следует создать include-файл с определениями основных цветов color.inc:

<?php
$white = ImageColorAllocate ($im, 255, 255, 255);
$black = ImageColorAllocate ($im, 0, 0, 0);
$red = ImageColorAllocate ($im, 255, 0, 0);
$green = ImageColorAllocate ($im, 0, 255, 0);
$blue = ImageColorAllocate ($im, 0, 0, 255);
$yellow = ImageColorAllocate ($im, 255, 255, 0);
$magenta = ImageColorAllocate ($im, 255, 0, 255);
$cyan = ImageColorAllocate ($im, 0, 255, 255);
$l_grey = ImageColorAllocate ($im, 221, 221, 221)
>
После того как мы нарисовали нашу картинку средствами GD, ее необходимо вывести в браузер. Для этого в зависимости от формата рисунка необходимо вызвать одну из функций: imagepng(int im [, string filename]) или imagejpeg (int im [, string filename [, int quality]]), передав ей в качестве параметра идентификатор картинки. Если кроме идентификатора области рисования указать имя файла, то изображение будет сохранено на диске под этим именем. После того как мы завершили работу с рисунком, необходимо освободить занимаемую им память. Для этого служит функция imagedestroy (int im). Рассмотрим работу с этими функциями на следующем примере.

Продолжение следует.

Copyright © Свет в Internet   Designed by Свет в Internet