ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Генерация изображения. Настройка поддержки изображений в PHP. Форматы изображений

Генерация изображения

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

Настройка поддержки изображений в PHP

Некоторые функции для работы с изображениями доступны в PHP всегда, однако большинство из них требует библиотеки GD2. Детальную информацию по GD2 можно найти по адресу http://www.boutell.com/gd/.

Начиная с версии 4.3, PHP поставляется со своей версией библиотеки GD2, поддерживаемой группой разработчиков PHP. Эта версия проще в установке и, как правило, более устойчива в работе, поэтому, скорее всего, многие отдадут предпочтения именно ей.

В Windows-версиях автоматически поддерживаются форматы PNG и JPEG.

Если нужно работать с форматом PNG под Unix? потребуется инсталлировать библиотеки libpng (http://www.libpng.org/pub/png/) и zlib (http://www.gzip.org/zlib).

Кроме того, необходимо сконфигурировать PHP со следующими опциями:

- -with - png - dir = /путь/к/libpng

- - with - zlib - dir = /путь/к/zlib

Если требуется поддержка JPEG под UNIX, необходимо загрузить модуль jpeg - 6b и перекомпилировать библиотеку GD с включенной поддержкой JPEG-формата. Модуль доступен для загрузки по адресу ftp://ftp.uu.net/graphics/jpeg/.

Далее следует переконфигурировать PHP с опцией

- - with - jpeg - dir = /путь/к/jpeg - 6b

и выполнить повторную компиляцию.

Если в изображениях планируется применять TtueType-шрифты, понадобится также библиотека FreeType, которая входит в состав PHP4. Ее можно загрузить с сайта http://www.freetype.org/.

Lkz использования вместо TrueType шрифтов PostScript Type 1 потребуется загрузить библиотеку t1lib, размещенную на сайте ftp://sunsite.unc.edu/pub/Linux/libs/graphics/.

После этого следует запустить конфигурационную программу PHP с опцией:

- - with - t1lib[=путь/к/t1lib]

В конце, понадобиться сконфигурировать PHP с опцией - - with -gd.

Форматы изображений

Библиотека GD поддерживает форматы JPEG, PNG и WBMP. Формат GIF больше не поддерживается. Рассмотрим кратко каждый из этих форматов.

Jpeg

JPEG обозначает Joint Photographic Experts Group (Объединенная группа экспертов по фотографии) и является названием группы стандартов, а не каким-то специфическим форматом. Формат файла, который обычно называют JPEG, в действительности имеет имя JFIF и соответствует одному из стандартов, выпущенных группой JPEG.

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

Получить более подробную информацию о JPEG /ОАША можно на официальном сайте по адресу http://www.jpeg.org/.

PNG

PNG обозначает Portable Network Graphics (Переносимая сетевая графика). Этот формат файла рассматривается как замена формата GIF (Graphics Interchange Format —формат обмена графическими изображениями) по причинам, о которых будет рассказано ниже. На веб-сайте PNG этот формат описан как формат изображений со сжатием без потерь. Поскольку потерь не происходит, этот формат подходит для изображений, содержащих текст, прямые линии и блоки одного цвета, как например, заголовки или кнопки на веб-сайте — все те элементы, для представления которых ранее использовались GIF- изображения.

Сжатая PNG-версия изображения характеризуется сравнимыми размерами сжатой GIF-версии. В PNG также применяется переменная прозрачность, гамма-коррекция и двойное чередование. Однако он не поддерживает анимацию — для этого можно воспользоваться расширенным форматом MNG, который еще находится в стадии разработки.

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

Более подробную информацию о формате PNG можно получить на официальном сайте PNG по адресу http://www.libpng.org/pub/png/.

WBMP

WBMP обозначает Wireless Bitmap (Битовое изображение для безпроводной связи). Этот формат специально разработан для устройств беспроводной связи. В настоящее время он используется не особенно широко.

GIF

GIF обозначает Graphics Interchange Format (Формат обмена графическими изображениями). Этот формат со сжатием без потерь, широко используемый в Интернет для хранения изображений, содержащих текст, линии и блоки одного цвета.

Почему GD не поддерживает GIF?

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

Разработчики GD не рекомендуют использовать эту версию и больше не поддерживают ее.

Существует немаловажная причина, почему GD больше не поддерживает формат GIF. В стандарте GIF применяется форма сжатия LZW (Lempel Ziv Welch), которая запатентована UNISYS. Разработчики программ, читающих и записывающих файлы в формате GIF, обязаны платить UNISYS лицензионные сборы. Так делает, скажем, компания Adobe, чьи продукты, например, Photoshop, используются для создания GIF-файлов. Библиотеки кодов находятся в ситуации, когда их авторы должны платить сборы, причем это распространяется и на пользователей. Таким образом, если вы на своем Web-сайте используете версию библиотеки GD с поддержкой GIF, то это значит, что вы должны заплатить UNISYS лицензионные сборы приличных размеров.