Привет: Гость | Регистрация | Вход

Привет: Гость

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь! Гости не могут просматривать РАЗДЕЛЫ СТАТЕЙ И ФАЙЛЫ

Форум переехал! Новый адрес www.aahc.comze.com ЗАХОДИТЕ ТУДА! МЫ ВАМ РАДЫ!
Меню сайта



 

Обновить страницу!
 



  • Страница 1 из 1
  • 1
Модератор форума: GrinGo  
Форум » Web-разработка » PHP-программирование » Создание изображений с помощью PHP
Создание изображений с помощью PHP
GrinGoДата: Суббота, 29.11.2008, 22:01 | Сообщение # 1
Admin
Группа: AdmInS
Сообщений: 253
Репутация: 2
Статус: Offline
Вступление

Язык PHP (официально: "PHP - гипертекст препроцессор"), встроенный в HTML язык скриптов на стороне сервера. Это мощный язык, позволяющий разработчику обращаться к базам данных различных типов и производителей, работать с массивами, регулярными выражениями, делать сетевые запросы, а также многе-многое другое... и все это можно проделать из HTML-кода! А результат - отдать на клиентскую сторону, в браузер.

Одной из особенностей PHP является возможность создания изображений, как говорится "на лету". Что это значит? Это означает, что скрипт, написанный на PHP выдает после выполнения HTTP-заголовок Content-type: с соответствующим созданному типу изображения значением и после этого выводит изображение, получается как будто веб-сервер выдал изображение как таковое, а не как результат выполнения скрипта.

Применений этой возможности PHP очень много на практике. Самое простое применение - создание счетчиков. Можно создать огромное множество счетчиков, различных оттенков, с использованием различных TrueType шрифтов. Самый яркий пример - http://www.topping.com.ua/ - украинская система рейтинга сайтов Интернет.

Необходимые компоненты

Прежде всего для создания изображений с выдачей пользователю в браузер необходим веб-сервер. Лучше всего для этого подойдет веб-сервер Apache. Далее - нужно получить самую свежую версию PHP, можно тут: http://www.php.net/downloads.php, а также все необходимые компоненты:

gd [gd-1.8.3.tar.gz]

t1lib [t1lib-1.0.1.tar.gz]

jpeg-6b [jpegsrc.v6b.tar.gz]

libpng [libpng-1.0.6.tar.gz]

freetype [freetype-1.3.1.tar.gz] (библиотека для прорисовки TT шрифтов)

Внимание! Номера версий указаны на момент написания данной статьи и могут устареть на момент чтения.

После установки всех библиотек и т.д. по местам нужно собрать модуль PHP. После этого остановить (если запущен) веб-сервер и запустить заново или запустить свежесобранный httpd, предварительно подправив под свои нужды конфигурационный файл httpd.conf. После этого веб-сервер с модулем PHP и возможностью создания изображений "на лету" готов! Можно пользоваться.

Создание скрипта

$img = imagecreate(400,80);

$green = ImageColorAllocate($img, 0, 255, 0);

$white = ImageColorAllocate($img, 255, 255, 255);

$trans = ImageColorTransparent($img, $white);

ImageFill($img, 0, 0, $white);

ImageString($img , 2, 10, 10, "Laa is so happy to see you!", $black);

ImageTTFText($img, 18, 0, 45, 45, $green, "arial8.ttf", "$text");

ImagePng($img);

ImageDestroy($img); ?>

Теперь подробнее о методе создания и самом скрипте.

Первая строка выдает HTTP-заголовок Content-type: image/png, который объявляет браузерам о том, что тип последующей информации является графическое изображение формата PNG.

Следующая строка возвращает идентификатор изображения $img, который PHP будет ассоциировать с изображением размером 400 пикселей по горизонтали и 80 по вертикали.

С третьей по пятую строку происходит ассоциирование цветов из палитры RGB (red-green-blue) с переменными PHP. Функция ImageColorAllocate должна быть вызвана для ассоциации любого цвета, который может быть использован в будущем изображении.

Функция ImageColorTransparent использует два аргумента - идентификатор изображения и цвет из палитры RGB (переменная PHP). В результате будущее изображение будет создано с прозрачным цветом указанным в переменной (второй аргумент). К сожаленью эта функция применима только с GIF-изображениями, но этот формат начиная с версии 1.6 в gd не поддерживается. Это связанно с тем, что Unisys владеет патентом LZW-компрессии.

ImageFill - заполнение изображения $img цветом $white начиная с позиции "0, 0" - верхний левый угол. Я только сам не понял зачем указывать координаты? По логике нужно указывать только изображение и цвет... ну да ладно. Думаю разработчики постарались сделать функции избыточными - вдруг кому пригодится... :-)

Функция ImageString прорисовывает строку текста (5-ый аргумент) цвета $white в позиции "10, 10" (3-, 4-ый аргументы) стандартным шрифтом с фиксированной шириной символов. Эта функция имеет мало возможностей прорисовки текста в изображениях, но эти возможности можно расширить с помощью функции ImageLoadFont.

Функция ImageTTFText прорисовывает текст в изображении с помощью TrueType шрифтов, которые разработчик может самостоятельно подключить. Второй аргумент указывает размер шрифта, используемого для прорисовки. Третий - угол наклона будущего текста относительно горизонтали. (Используя угол 90°, разработчик получает текст, написанный снизу вверх, т.е. вертикально.) Далее - 4- и 5-ый аргументы предназначены для указания координат начала строки текста (точнее: левого нижнего угла первой буквы текста, что противоположно поведению функции ImageString, которая использует координаты для указания верхнего правого угла первой буквы текста). Следующие аргументы, которые используются - это цвет текста, шрифт (путь к файлу шрифта) и собственно текст.

Две последнии функции (ImagePng и ImageDestroy) выдают изображение браузеру и удаляют его из памяти соответственно. Аргументом в обоих случаях выступает идентификатор изображения. Помимо функции ImagePng допустимо использование функции ImageJpeg с предварительным указанием этого в HTTP-заголовке (Content-type:)

http://hotwired.lycos.com

 
Форум » Web-разработка » PHP-программирование » Создание изображений с помощью PHP
  • Страница 1 из 1
  • 1
Поиск:






 
© Алькапоша 2008 год
   



  • Каталог сайтов Всего.RU
  • автоматический обмен webmoney e-gold