Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

  Раздел: Компьютерная документация -> Интернет технологии -> PHP

 

GD Library - эффективное использование

Прежде всего замечу, что для полного понимания материала данной статьи необходимо иметь некоторые знания о работе с библиотекой GD. Предполагается, что читатель уже работал с ней или хотя бы теоретически подкован.

Предисловие

Примеры к статье - 152 кб

После выхода в свет PHP 4.3, библиотека GD начала поставляться с ним одной связке. Для проверки, установлена ли данная библиотека в вашей системе, запустите функцию phpinfo() и найдите секцию GD. Если же таковой не окажется, то для ее установки нужно: 1) наличие самого файла php_gd.dll в папке php-4.x.xextensions 2) убрать ";" в строке ";extension=php_gd.dll" файла php.ini.

Еще небольшое замечание: так как предполагается, что графика, созданная с помощью РHP, предназначена для просмотра посетителю, то необходимо позаботиться о ее размерах. Ведь выделенные каналы есть не у всех, а ведь не хочется, чтобы ваш сайт был закрыт еще до окончания его загрузки.

Библиотека GD стала столь популярной благодаря тому, что с ее помощью возможно динамически генерировать различные графические элементы. Чаще всего это необходимо для различного рода счетчиков, эскизов и рекламных материалов. Более сложное применение функций библиотеки GD можно встретить в изменении цвета изображения или же "фокусами" со шрифтами. Это можно применить, например, при наведении курсора мыши на определенную картинку.

Часть 1 - Изменяем цвет

На самом деле в изменении цвета изображения ничего сложного нет. Самый простой способ - это создать изображение таких же размеров и залить его новым цветом. А потом это изображение накладывается поверх исходного.

Листинг 1.


Вот что получиться, если использовать для наложения слой синего цвета RGB(0,0,255):

Mona Lisa Blue Mona Lisa

А сейчас рассмотрим другое применение графической библиотеки. Это будут функции работы со шрифтами TTF (TrueType Font). Их всего две - imagettftext и imagettftextbbox. Но практически используется только одна: imagettftext (записывает текст на изображение с использованием шрифтов TrueType).

С тех пор, как PHP стал работать с графикой, появилась возможность широко использовать его в комбинации с функциями TTF. Таким образом можно получить много интересных эффектов: текстуры, тени и прозрачный текст.

Часть 2 - Затенение

Пожалуй, самый простой текстовый эффект - затенение. Этот эффект делается очень просто: рисуем смещенный текст, а потом накладываем на него исходный текст. Еще можно использовать прозрачный текст для создания лучшего эффект тени, но об этом чуть позже.

Листинг 2.

 
Как видите, ничего сложно в реализации эффекта "тени" ничего сложного нет.

Выделение текста также довольно просто реализовать. Теоретически для этого нужно нарисовать линию слева, справа, над- и под исходным текстом. Данный метод успешно работает с всеми шрифтами, так как все сводиться к перемещению за один раз одного пикселя. Чтобы создавать такой контур, нам необходимо лишь знать ширину текста. Затем создаем два цикла:

Листинг 3.

 

Теперь, вызвав функцию imagettftextoutline($img,40,0,10,50,$red,$black,"arial.ttf","AaBbCcDd",3), можно получить следующее:

ABCDEF Picture

Часть 3 - Прозрачный текст

Создать прозрачный текст не так просто, как тень или обводку контура. Но на php нет ничего невозможного. Прозрачность создается путем перемещения текста в буфер (для редактирования), а затем возврат обратно и наложением на исходную картинку.

Листинг 4.


 
В результате выполнения данной функции исходное изображение остается без изменений. Вот только сверху на него добавляется полупрозрачный текст. Данный пример иллюстрирует это:

picture with transparent text

Часть 4 - Текстуры

Создание текста с текстурой - один из самых сложных эффектов. Для его воплощения необходимо знать, как использовать так называемое "маскирование". Поможет разобраться в этом следующая функция:

Листинг 5.


 
Представленный выше код - самый объемный в данной статье, хотя и используется для создания простого текстурированного текста. Это быстрее можно сделать в том же Photoshop'е, а теперь это стало возможным с использованием PHP и GD. При вызове функции imagettftexttexture ($img,$texture,40,0,10,50,"arial.ttf","AaBbCcDd") где $texture содержит картинку с текстурой (в нашем примере - кирпичная стена), то результатом ее работы будет следующее изображение:

ABCDEF with brick

На этом я завершаю свою статью о работе с графической библиотекой GD. Надеюсь, что рассмотренные примеры помогут вам расширить область применения языка PHP и создавать полезные скрипты.

Автор: Николай Рудченко
Источник: www.codeguru.com.ua

Ссылки по теме
Внутренние функции
Обработка строк в РНР
PHP и всё такое...
Пишем PHP код, устойчивый к ошибкам
Полезные скрипты на PHP
Почтовые функции в РНР
Полезные функции для работы с файловой системой

Вся документация PHP

 

Компьютерная документация от А до Я - Главная

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.