1 / 20

Работа с графическими библиотеками

Работа с графическими библиотеками. Лекция 8. Общие принципы. Протокол HTTP , как известно, может возвращать не только HTML- код, но и двоичные данные, включая графическую информацию

dewei
Download Presentation

Работа с графическими библиотеками

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Работа с графическими библиотеками Лекция 8

  2. Общие принципы • Протокол HTTP, как известно, может возвращать не только HTML-код, но и двоичные данные, включая графическую информацию • Точно также интерпретатор языка PHP способен динамически генерировать не только HTML-код, но и изображения.

  3. Графические библиотеки в Web • GD Graphics Library • GraphicsMagick • ImageMagick

  4. Поддерживаемые форматы графической библиотеки GD • Вышеперечисленные форматы поддерживаются «из коробки». • Благодаря расширениям, могут поддерживаться и другие форматы: BMP, TIFF, SWF и др.

  5. Этапы генерации изображения • Установить тип содержимого как «изображение», чтобы браузер смог интерпретировать изображение должным образом • Создать новое пустое изображение, установив нужную ширину и высоту • Отрисовать необходимые детали изображения • Сохранить окончательный вариант изображения и передать его в браузер • Очистить память, которая использовалась для создания и хранения изображения • Организовать отображение рисунка из файла image.php

  6. Установка HTTP-заголовка • Для генерирования изображения прямо в браузер клиента, необходимо в PHP-сценарии установить специальный HTTP-заголовок, указывающий на MIME-тип изображения. Для картинки формата PNG: header("Content-Type: image/png");

  7. Создание пустого изображения // Определяем размеры изображения // 125pxширина (width), 125px высота (height) $image=imagecreate(125,125); // Альтернатива: полноцветное изображение $image=imagecreatetruecolor(125,125);

  8. Идентификатор цвета Общий вид функции: intimagecolorallocate(resource $image,int$red,int$green,int$blue) • Возвращает идентификатор цвета в соответствии с заданными RGB компонентами. • imagecolorallocate() должна вызываться для создания каждого цвета, который будет использоваться в изображении $image. // создадим несколько цветов // первый определённый цвет будет фоновым, // если была использована функция imagecreate() $scarlet=imagecolorallocate($image,255,36,0); $white=imagecolorallocate($image,255,255,255); $black=imagecolorallocate($image,0,0,0);

  9. Фоновая заливка boolimagefill(resource $image,int$x,int$y,int$color) • Производит заливку монотонной области, начиная с заданных координат (верхний левый угол имеет координаты 0, 0), цветом $color в изображении $image.

  10. Генерация изображения в формате PNG boolimagepng(resource $image[, string $filename[,int$quality]]) • $image– ресурс изображения, полученный одной из функций создания изображений. • $filename– путь для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде. • $quality– степень сжатия: от 0 (нет сжатия) до 9.

  11. Генерация изображения в формате PNG // Сохраняем файл в формате PNG и выводим его в стандартный поток imagepng($image);

  12. Высвобождение памяти boolimagedestroy(resource $image) • Освобождает память, занятую изображением $image. • Пример: // Чистим использованную памятьimagedestroy($image);

  13. Вариант тестовой программы <?php header("Content-Type: image/png"); // Определяем размеры изображения // 125pxширина (width), 125px высота (height) $image=imagecreatetruecolor(125,125); // создадим несколько цветов $scarlet=imagecolorallocate($image,255,36,0); $white=imagecolorallocate($image,255,255,255); $black=imagecolorallocate($image,0,0,0); // Заливка фона алым цветом imagefill($image,0,0,$scarlet); // Сохраняем файл в формате PNG и выводим его imagepng($image); // Чистим использованную память imagedestroy($image); ?>

  14. Работа с текстом arrayimagettftext(resource $image, float $size, float $angle,int$x,int$y,int$color, string $fontfile, string $text)

  15. Работа с текстом arrayimagettftext(resource $image, float $size, float $angle,int$x,int$y,int$color, string $fontfile, string $text) Наносит текст $text поверх изображения, используя TrueType шрифт. • $image – ресурс изображения • $size – размер шрифта в пунктах (GD2) • $angle – угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки.

  16. Работа с текстом arrayimagettftext(resource $image, float $size, float $angle,int$x,int$y,int$color, string $fontfile, string $text) Наносит текст $text поверх изображения, используя TrueType шрифт. • $x, $y – координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). • $color – индекс цвета. • $fontfile – путь к файлу TrueType шрифта. • $text – текстовая строка в кодировке UTF-8.

  17. Использование текста в графике <?php header("Content-type: image/png"); $image=imagecreatetruecolor(190,190); $scarlet=imagecolorallocate($image,255,36,0); $yellow=imagecolorallocate($image,251,236,93); $black=imagecolorallocate($image,0,0,0); imagefill($image,0,0,$scarlet); // Определим шрифт: Comic Sans Serif $font="comic.ttf"; $text="Доброе утро!"; // Тень imagettftext($image,20,-45,31,41,$black,$font,$text); // Текст imagettftext($image,20,-45,30,40,$yellow,$font,$text); imagepng($image); imagedestroy($image); ?>

  18. Использование текста в графике • Результат:

  19. Создание изображения из файла resource imagecreatefrompng(string $filename); • Возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

  20. Полезные ссылки • http://php.net/manual/ru/book.image.php • http://www.php.su/functions/?cat=image • http://ruseller.com/lessons.php?rub=37&id=439

More Related