Справочник от Автор24
Поделись лекцией за скидку на Автор24

Работа с графикой в PHP.

  • 👀 294 просмотра
  • 📌 270 загрузок
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Работа с графикой в PHP.» pdf
Лекция 5. Работа с графикой в PHP. 1. Введение Язык программирования PHP позволяет работать не только с текстовой информацией в различных форматах (например, HTML), но также включает в себя мощные средства создания и обработки изображений. Например:  Создание кнопок с надписями, текст которых хранится в базе данных.  Графическое отображение статистических данных.  Создание различных графиков и диаграмм.  и т.д. В этой лекции рассмотрим некоторые функции для работы с графикой библиотеки GD. GD является внешней библиотекой, доступной в виде модуля PHP, которая устанавливается автоматически. 2. Создание заголовка По умолчанию, PHP автоматически добавляет один заголовок «Content-type: text/html» в http-ответ, означающий, что результатом работы скрипта является HTML код Например, такой скрипт: Создаст такой http-ответ, который уйдет в программу-клиент (браузер): $> php hello.php Content-type: text/html Hello world! $> _ Заголовок содержит информацию для браузера и не отображается на экране. 1 Используемый по умолчанию заголовок Content-type: text/html показывает, что выводится HTML код, который браузер должен обработать. Если изменить его скажем на Content-type: text/plain, то браузер будет воспринимать документ просто как текст и выводить его "как есть" Для вывода заголовков в PHP используется функция header(). Необходимо позаботится, чтобы вывести данные в нужном формате. Примечание Web-сервер перед отправкой данных клиенту может добавлять и другие заголовки помимо Content-type. Создание изображений в PHP требует наличия библиотеки GD написанной Thomas Boutell. Поддержка этой библиотеки включается при компиляции PHP с опцией --with-gd. Для работы с TrueType шрифтами также может понадобиться библиотека FreeType (http://www.freetype.org/). Установка обеих библиотек подробно описана в соответствующей документации. Создание изображения. Генерация изображения состоит из следующих основных этапов:  Создание изображения (холста).  Отрисовка изображения.  Вывод полученной картинки в браузер, или сохранения в файл.  Уничтожение ресурса изображения. Для создания изображения используется функция ImageCreate(). В качестве аргументов функция принимает ширину и высоту изображения в пикселах и возвращает идентификатор, который в дальнейшем используется при вызове функция для работы с изображением (подробнее см. ниже). Перед тем, как что-либо рисовать, необходимо зарегистрировать цвета, которые вы собираетесь использовать. Для этого предназначена функция ImageColorAllocate(). Этой функции передаются идентификатор изображения и три числа, задающие цвет (RGB - red, green, blue). Функция возвращает идентификатор цвета, который используется в последующих операциях отрисовки изображения. 2 Пример: Существует большое количество функций отрисовки изображений. Полное их рассмотрение выходит за настоящей лекции. Основные функции для выполнения лабораторной работы представлены ниже. Вывод (или сохранение в файл) изображения осуществляется вызовом функции ImagePNG(), ImageJPEG() или ImageGIF() (и д.р.). ImagePNG() преобразует внутреннее представление изображения в PNG файл и посылает его клиенту. Аналогично работает и ImageGIF(), но используя формат GIF. Перед использованием функций ImagePNG() или ImageGIF() необходимо послать соответствующий заголовок Content-type Формат Заголовок PNG "Content-type: image/png" GIF "Content-type: image/gif" Примечание: Заголовки относятся ко всему документу. То есть если вы послали заголовок, показывающий, что вы выводите изображение, вы не можете выводить текст. А после того, как вы вывели первый байт данных, заголовок уже нельзя изменить! Это значит, что сначала нужно вызвать header() и только затем начинать вывод данных, иначе вы получите сообщение об ошибке. Если вы не посылаете заголовок Content-type, PHP автоматически посылает Content-type: text/html как только вы начинаете вывод данных. 3 Практическое использование функций библиотеки GD мы рассмотрим в описании функций ниже. После вызова imageGIF или imagePNG, изменения в изображение вносить уже нельзя, так как оно уже было отправлено клиенту. Если мы сохраняем изображение в файл, затем его можно вывести на экран при помощи тэгов HTML. При это, заголовок «Content-type: image/png» НЕ НУЖНО. 4 3. Функции для выполнения лабораторной работы. Ниже проводится описание основных функций для работы с графическими изображениями в PHP, которые необходимы для выполнения лабораторной работы. Полный список функций для работы с графикой можно получить из раздела «Используемые источники». imagecreate imagecreate — Создание нового изображения Описание ¶ imagecreate ( int $width , int $height ) : resource imagecreate() возвращает идентификатор изображения, представляющего из себя пустое изображение заданного размера. Список параметров ¶ width - Ширина изображения. Height - Высота изображения. Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки. Результатом выполнения примера является изображение с текстом. 5 ВНИМАНИЕ! В заголовке указано, что все, что попадет в браузер, является изображением в формате PNG. При этом невозможно работать с обычным текстом (например, при помощи echo). Подробности смотрите в описании функции imagepng. imagepng imagepng — Вывод PNG изображения в браузер или файл Описание ¶ imagepng ( resource $image [, mixed $to = NULL [, int $quality = -1 [, int $filters = -1 ]]] ) : bool Выводит или сохраняет в файл PNG изображение. Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). to - Путь для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде. Quality - Степень сжатия: от 0 (нет сжатия) до 9. По умолчанию (-1) используется значение по умолчанию сжатия zlib. filters - Позволяет уменьшить размер PNG файла. Это битовая маска, значением которой может быть комбинация констант PNG_FILTER_XXX. Для включения или выключения всех фильтров удобно воспользоваться константами PNG_NO_FILTER или PNG_ALL_FILTERS соответственно. Значение по умолчанию (-1) отключает фильтрацию. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Пример: ¶ Обратите внимание, что в функции imagepng указан второй аргумент. Т.е. эта функция сохраняет изображение в файл, который мы выводим на экран браузера следующей строкой. В этом случае мы можем работать с с обычным текстом (например, при помощи echo). imagecolorallocate imagecolorallocate — Создание цвета для изображения Описание ¶ imagecolorallocate ( resource $image , int $red , int $green , int $blue ) : int Возвращает идентификатор цвета в соответствии с заданными RGB компонентами. imagecolorallocate() должна вызываться для создания каждого цвета, который будет использоваться в изображении image. Первый вызов imagecolorallocate() задает цвет фона в палитровых изображениях изображениях, созданных функцией imagecreate(). Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). red - Значение красного компонента цвета. green - Значение зеленого компонента цвета. 7 blue - Значение синего компонента цвета. Эти аргументы могут принимать либо целочисленные значение в диапазоне от 0 до 255, либо шестнадцатеричные в диапазоне от 0x00 до 0xFF. Возвращаемые значения ¶ Идентификатор цвета, либо FALSE в случае возникновения ошибки. Пример использования imagecolorallocate(): imageline imageline — Рисование линии Описание ¶ imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool Рисует линию соединяющую две точки. Список параметров ¶ 8 image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). x1 - x-координата первой точки. y1 - y-координата первой точки. x2 - x-координата второй точки. y2 - y-координата второй точки. color - Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate(). Возвращаемые значения ¶ Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. imagerectangle imagerectangle — Рисование прямоугольника Описание ¶ imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool imagerectangle() рисует прямоугольник с заданными координатами углов. Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). x1 - Верхняя левая x координата. y1 - Верхняя левая y координата 0, 0 - левый верхний угол изображения. x2 - Нижняя правая x координата. y2 - Нижняя правая y координата. Color - Идентификатор цвета, созданный функцией imagecolorallocate(). 9 Возвращаемые значения ¶ Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Пример использования imagerectangle(): imagefilledrectangle imagefilledrectangle — Рисование закрашенного прямоугольника Описание ¶ imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool Создает прямоугольник закрашенный цветом color в заданном изображении image. Начальная точка 1, конечная 2. 0,0 - левый верхний угол изображения. 10 Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). x1 - x-координата точки 1. y1 - y-координата точки 1. x2 - x-координата точки 2. y2 - y-координата точки 2. color - Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate(). Возвращаемые значения ¶ Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Пример использования imagefilledrectangle(): imagestring imagestring — Рисование строки текста горизонтально Описание ¶ 11 imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color ) : bool Рисует текст string на заданных координатах. Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). font - Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont(). x - x-координата верхнего левого угла. y - y-координата верхнего левого угла. string - Строка текста. color - Идентификатор цвета, созданный функцией imagecolorallocate(). Возвращаемые значения ¶ Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. imagearc imagearc — Рисование дуги Описание ¶ imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , i nt $color ) : bool imagearc() рисует дугу окружности с заданными координатами центра. Список параметров ¶ image - Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor(). 12 cx - x-координата центра. cy - y-координата центра. width - Ширина дуги. height - Высота дуги. start - Угол начала дуги в градусах. end - Угол окончания дуги в градусах. 0° соответствует положению 3 часа, дуга рисуется по часовой стрелке. color - Идентификатор цвета, созданный функцией imagecolorallocate(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Пример: ¶ Используемые источники. 1. Руководство по PHP. https://www.php.net/manual/ru/index.php 2. PHP. https://habr.com/ru/hub/php/ 3. Учебник по PHP. https://htmlacademy.ru/tutorial/php 4. PHP.SU. http://www.php.su/ 14
«Работа с графикой в PHP.» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot