Добавить в корзинуПозвонить
Найти в Дзене
WebTechnology

Создание изображений в PHP

Когда я начинаю рассказывать о создании изображений в PHP, многие спрашивают: "А причём здесь PHP, ведь это работа скорее дизайнеров, нежели программистов?". И всега приходится объяснять, что PHP позволяет генерировать изображения. Ключевое слово - "генерировать". Какие могут быть примеры генерации изображений в PHP? Например, генерация графиков по заданным пользователям функциям, графики зависимости посещаемости сайта от времени, различные сервисы для рисования изображений прямо в браузере (разумеется, с последующим сохранением и загрузкой на сервере) и другие различные примеры. И в этой статье мы разберём основные принципы создания изображений в PHP. Данная статья будет вводная, поэтому разберём с Вами определённый HelloWorld при работе с изображениями: <?php
  $i = imageCreate(200, 300);
  $color = imageColorAllocate($i, 255, 255, 0);
  imageFilledRectangle($i, 0, 0, imageSX($i), imageSY($i), $color);
Header("Content-type: image/jpeg");
  imageJpeg($i);
  imageDestroy($i);
?> Зде

Когда я начинаю рассказывать о создании изображений в PHP, многие спрашивают: "А причём здесь PHP, ведь это работа скорее дизайнеров, нежели программистов?". И всега приходится объяснять, что PHP позволяет генерировать изображения. Ключевое слово - "генерировать". Какие могут быть примеры генерации изображений в PHP? Например, генерация графиков по заданным пользователям функциям, графики зависимости посещаемости сайта от времени, различные сервисы для рисования изображений прямо в браузере (разумеется, с последующим сохранением и загрузкой на сервере) и другие различные примеры. И в этой статье мы разберём основные принципы создания изображений в PHP.

Данная статья будет вводная, поэтому разберём с Вами определённый HelloWorld при работе с изображениями:

<?php
  $i = imageCreate(200, 300);
  $color = imageColorAllocate($i, 255, 255, 0);
  imageFilledRectangle($i, 0, 0, imageSX($i), imageSY($i), $color);
Header("Content-type: image/jpeg");
  imageJpeg($i);
  imageDestroy($i);
?>

Здесь имеется много нюансов, поэтому подробным образом объясню каждую строку примера:

  • imageCreate(int $width, int $height) - эта функция возвращает идентификатор изображения шириной width и высотой height. Если объяснить более понятным языков, то Вы этим действием создаёте "чистый холст для рисования".
  • imageColorAllocate(resource $image, int $red, int $green, int $blue) - функция возвращает идентификатор цвета со следующими составляющими: красной (red), зелёной (green), синей (blue). В нашем случае мы взяли красную и зелёную составляющую по максимуму (255). В результате, был получен жёлтый цвет.
  • imageFilledRectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color) - эта функция рисует закрашенный прямоугольник на холсте image с координатами левого верхнего угла - x1 и y1, и координатами правого нижнего угла - x2 и y2, и цветом color.
  • imageSX(resource $image) - возвращает ширину изображения image.
  • imageSY(resource $image) - возвращает высоту изображения image.
  • header($string) - функция, которая посылает заголовок серверу. В данном случае мы сообщили, что наш контент имеет тип "image/jpeg". Это очень важная строка, и из-за её отсутствия очень часто возникают ошибки.
  • imageJpeg(resource $image) - эта функция "выбрасывает" изображение image на экран. То есть в предыдущей строке мы сообщили серверу, что сейчас будет отправлено изображение, а уже этой строкой отправили само изображение.
  • imageDestroy(resource $image) - уничтожение изображения image. Всегда надо использовать эту функцию, чтобы освободить память на сервере.

Фактически, пример выше - это HelloWorld при работе с изображениями. Здесь каждая строчка очень важна и при удалении любой строки - работа, как минимум, станет непредсказуемой, а, скорее всего, скрипт перестанет работать. В следующей статье мы продолжим заниматься созданием изображением в PHP, поэтому советую подписаться на обновления, чтобы не пропустить её.