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

Не текстом единым

Никита Кислицин

Xakep, номер #060, стр. 060-094-1


(nikitoz@real.xakep.ru, www.iRed.ru)

Создание и обработка изображений на стороне сервера

Так уж сложилось, что под термином "динамический web-ресурс" все обычно понимают текст с разметкой HTML, генерируемый специальными приложениями, написанными на Perl, PHP, C++ или любом другом языке. Это не совсем верно, ведь современные технологии при помощи специальных библиотек и программ позволяют формировать на стороне сервера не только массивы текстовой информации, но и графические изображения. Об этом-то и пойдет речь в этой статье.

Зачем все это?

Мне всегда нравились простые, наполненные познавательной информацией и не перегруженные графикой сайты. Причин тому было несколько. Во-первых, когда я еще работал в интернете по модему, время загрузки страниц, как и скорость соединения, оставляло желать лучшего - думаю, тебе знакомы ощущения от работы с Сетью по телефонной линии, подключенной к древней АТС :). Когда же я получил доступ к локалке с полноценным гейтом в инет, встал другой вопрос - денежная политика вторичных поставщиков трафика всегда вводила меня в ступор. Ну и, конечно, мой математический мозг всегда лучше воспринимал простые текстовые интерфейсы, нежели свалку сложных изображений весом килобайт так в 150 :). Но все-таки я признавал, что графика может (и должна) помогать пользователю отыскивать и усваивать информацию. Так, скажем, статистические данные куда наглядней представляются красивыми разноцветными диаграммами или графиками, чем утомительным и занудным текстом. Именно поэтому тема динамического формирования изображений так актуальна в современном web-программировании.

Стоит только вспомнить различные службы, предоставляющие бесплатные счетчики посещений (типа SpyLog) - эти системы формируют по некоторому шаблону различные изображения, "счетчики", показания которых напрямую зависят от каких-то записей в БД. Ниже мы подробно рассмотрим использование графики в веб-технологиях, процесс обработки и создания различных графических изображений интерпретатором PHP на стороне сервера. Тут следует отметить, что все функции по работе с графикой реализованы для нескольких форматов. Мы же остановим свой выбор на формате png.

Что нам понадобится?

Для формирования двухмерной графики существует ставшая уже почти стандартом библиотека GD. Она весьма популярна и у CPP-программистов. Библиотека представляет собой набор функций по генерации изображений (создание простых геометрических фигур, работа с цветами, операцией заливки и т.д.), легко подключается к Perl (открой Хакер 11.03), PHP или Tcl и вообще, дает программисту широкие возможности для работы с графикой. До версии 1.6 включительно библиотека работала с форматами gif и png. Все последующие релизы GD, из-за проблем с авторскими правами, стали поддерживать только форматы png, jpeg и WBMP. Следует заметить, что формат png превосходит gif по всем показателям, поэтому не следует огорчаться из-за отсутствия последнего.

Для того чтобы графические функции можно было использовать, необходимо прикрутить библиотеку к интерпретатору. Пользователям Unix для этого достаточно скачать и установить саму библиотеку и пересобрать интерпретатор с флагом -with-gd:

Содержание  Вперед на стр. 060-094-2
<<< НАЗАД ||| ГЛАВНАЯ