В этой главе описывается создание графических функций с помощью функций расширения GD, речь о которых шла в главе 16, "Обработка изображений и графики". Практика свидетельствует о том, что необходимо быть осведомленными о проблемах, возникающих при создании графических изображений. Во-первых, это влечет за собой относительно большие расходы процессорного времени. В большинстве случаев гибкость динамической графики не соответствует нагрузке, которую испытывает при этом сервер. Во-вторых, задачу создания привлекательной графики средствами PHP нельзя отнести к категории простых. Многие методы, которыми обладают графические редакторы, не реализуемы. Как вы увидите в последующих примерах, большая часть работы будет затрачена на создание простейших двумерных графиков. Наконец, функций, обеспечивающих адекватную поддержку текста, какие существуют в текстовых редакторах, не существует. Отсутствует перенос слов на новую строку, а также концепция междустрочных интервалов, разрядки и нижних выносных элементов. Независимо от этого, генерирование графики иногда имеет определенный смысл. В этой главе содержится несколько реальных примеров, к использованию которых можно приступать после внесения самых незначительных корректив.
25.1. Динамические кнопки
Изображения, окруженные якорными тегами, представляют собой обычное устройство навигации. Заменив простой текст, с помощью этого метода можно создавать кнопки, подобные тем, которые создаются в операционной системе, и даже красочные пиктограммы. В большинстве случаев лучше всего применять графику, созданную с помощью вашего любимого графического редактора, так как время между изменениями может быть достаточно большим. Однако если имеется кнопка, изображение которой изменяется достаточно часто, можно создать ее динамически с помощью PHP. Содержимое кнопки, и ее обозначение должны быть доступными в PHP. Это может быть оператор, устанавливающий значение переменной, а также значение, полученное из файла или базы данных.
Суть этой идеи позволит прояснить простой пример. Многие корпоративные Web-узлы имеют раздел, предназначенный для пресс-релизов. Вместо простого перечисления перечня текстовых ссылок пользователь хочет получить графическое изображение пылающей газеты для каждого пресс-релиза и все под заголовком "Последние новости". Каждая пылающая газета сверху сопровождается текстом с заголовком пресс-релиза. Для небольшой компании, которая выпускает не более одного пресс-релиза в месяц, такую графику лучше создать вручную. А для компании, выпускающей пресс-релизы каждую неделю, есть смысл автоматизировать этот процесс. Пресс-релизы можно разместить в базе данных, а графическое изображение создавать в момент просмотра пресс-релизов посетителями. Одним из преимуществ такого подхода является то, что если главный администратор увидит, что вы размещаете на узле компании свежие газеты, достаточно будет небольшой модификации для того, чтобы разместить вместо этого рисунка эмблемы компании.
Издержки, связанные с динамически создаваемой графикой, можно подсчитать. Вам совсем невыгодно экономить 15 минут в месяц, если загрузка такой страницы будет занимать 30 секунд. Если вы работаете с Internet постоянно, то, конечно, знаете, что загруженные рисунки при повторном к ним обращении загружаются уже из кэш-памяти браузера. Поэтому загрузка первой страницы может занимать длительное время, в то время как все последующие загрузки будут проходить уже быстрее, так как графическое изображение уже было загружено в браузер. Динамическая графика также кэшируется, но при кэшировании браузер использует URL. GET-method формирует переменные, являющиеся частью URL, поэтому Web-узлы http://www.site.com/button.php?label=home&from=1 и http://www.site.com/button.php?label=home&from=2 создают идентичные графические изображения, которые все же различаются, поскольку здесь речь идет о кэшпамяти браузера.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Создание графических изображений
12-06-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Сети:HTTP-аутентификация,Управление кэш-памятью браузера,Установка типа документа. Часть Восьмая. | PHP. Создание графических изображений. Часть Вторая. |