Нанесение текста на изображение. 2 способ

Рецепт №98. Из книги «128 рецептов php»
Перейти к оглавлению

В предыдущем рецепте, уже затрагивалась тема нанесения текста, только в примере присутствовал один серьезный недостаток – отсутствовала возможность нанесения на изображение кириллического текста. Этот рецепт исправит недостаток предыдущего. Для нанесения текста в любой кодировке и в любом языке возможно при использовании сторонних шрифтов. В реализации примера используется функция — imagettftext. Она может принимать несколько значений: размер текста в пикселях, цвет, начало текста относительно координат по осям X и Y, сам наносимый текст и самое главное, файл шрифта, который позволит наносить текст в нужной кодировке.
Читать далее «Нанесение текста на изображение. 2 способ»

Нанесение текста на изображение. 1 способ

Рецепт №97. Из книги «128 рецептов php»
Перейти к оглавлению

Помимо рисования графических элементов, в GD есть возможность нанесения текста на изображение. Причем несколькими способами. Первый, простой, описан в этом рецепте, написание текста реализуется с помощью функции imagestring. Она может наносить текст, используя стандартные шрифты. Стандартных шрифтов всего пять, они задаются числом от одного до пяти. Чем больше значение, тем крупнее шрифт. Также функция может принимать цвет текста и координаты начала строки по осям X и Y.
Хочу обратить внимание, что у этого способа нанесения текста имеется один большой недостаток, функция imagestring использует стандартные шрифты в кодировке latin2. В связи с этим, вывод кириллицы не возможен.
Читать далее «Нанесение текста на изображение. 1 способ»

Рисование окружностей, эллипсов и дуг

Рецепт №96. Из книги «128 рецептов php»
Перейти к оглавлению

Для рисования эллипсов существует функция imageellipse, которая принимает несколько параметров: центр эллипса по осям X и Y, ширина и высота, цвет. Поскольку растянутость и сжатие можно регулировать параметрами ширины и высоты, рисование эллипсов происходит очень просто. Эту же функцию можно использовать при нанесении на изображение окружности, главное, чтобы ширина и высота были одинаковыми.
Читать далее «Рисование окружностей, эллипсов и дуг»

Рисование прямоугольников и квадратов

Рецепт №95. Из книги «128 рецептов php»
Перейти к оглавлению

Нарисовать прямоугольник можно несколькими способами. Первый – воспользовавшись предыдущим рецептом, нарисовать четыре линии. Второй – использовать специальные функции: imagerectangle, которая рисует квадрат по координатам двух, расположенных по диагонали улов. При рисовании прямоугольника используются координаты верхнего левого и нижнего правого угла. Также есть еще одна функция — imagefilledrectangle, она схожа с первой, только рисует закрашенный прямоугольник. Используя две эти функции, можно так же легко нарисовать и квадраты, главное, чтобы стороны были равны.
Читать далее «Рисование прямоугольников и квадратов»

Рисование линии. Стиль, цвет, толщина

Рецепт №94. Из книги «128 рецептов php»
Перейти к оглавлению

Помимо обработки картинок, с помощью GD можно рисовать простые элементы. В этом рецепте приведен пример нанесения линий. Рисовать можно как на пустых холстах, так и на загруженных изображениях. Линии могут иметь различный цвет, толщину и стиль отображения – не прерывная, пунктир, точки, точка и тире и так далее. Для установки стиля, используется функция imagesetstyle, которая принимает массив с порядком нанесения и цветом пикселей. Чтобы определить толщину линии применяется функция – imagesetthicknes. А для рисования самой линии используется функция imageline,которая принимает значение начальных и конечных координат по осям X и Y.
Читать далее «Рисование линии. Стиль, цвет, толщина»

Поворот PNG изображения с сохранением прозрачности

Рецепт №93. Из книги «128 рецептов php»
Перейти к оглавлению

Поворот png изображения, которое имеет прозрачность, немного сложней поворота обычной картинки. Необходимо при повороте, задать прозрачный фон, который создается с помощью функции imagecolorallocatealpha. А также после самого поворота нужно задать прозрачность для повернутого изображения.
Читать далее «Поворот PNG изображения с сохранением прозрачности»

Поворот изображения

Рецепт №92. Из книги «128 рецептов php»
Перейти к оглавлению

Поворот изображения реализуется с помощью функции imagerotate. Угол поворота задается в градусах(0-360), его можно задавать как положительным, так и отрицательным значением. От знака градуса зависит, в какую сторону будет сделан поворот, по часовой стрелке или против нее.
Читать далее «Поворот изображения»

Универсальные функции создания и сохранения картинок

Рецепт №91. Из книги «128 рецептов php»
Перейти к оглавлению

Как, наверняка, уже стало ясно из предыдущих рецептов, для работы с разными форматами изображений, приходится использовать разные php функции при создании и сохранении/выводе в браузер изображения. Например, при сохранении картинки в формате jpg используется функция imagejpeg, для png — imagepng , для gif — imagegif. Так же обстоят дела и с функциями создания изображения разных форматов. Это создает некоторые проблемы в случаях, когда на обработку может попасть картинка любого формата. Ниже приведенный рецепт поможет решить сложившуюся проблему.
Читать далее «Универсальные функции создания и сохранения картинок»

Вывод изображения в браузере

Рецепт №90. Из книги «128 рецептов php»
Перейти к оглавлению

В рассмотренных ранее рецептах, созданные изображения сохранялись в файл. Этот способ вывода используется часто, но иногда приходится отображать результат сразу в браузер, без предварительного сохранения.
Для ввода изображения в браузере достаточно функции imagejpeg(при работе с картинками в формате jpeg), предварительно передав браузеру заголовок, который задает тип контента: «Content-Type: image/jpeg».
Читать далее «Вывод изображения в браузере»

Получение фрагмента картинки

Рецепт №89. Из книги «128 рецептов php»
Перейти к оглавлению

Рецепт наглядно показывает, как можно вырезать фрагмент изображения. Для примера используется картинка в формате jpeg, но при необходимости тоже самое можно проделать с любым другим форматом. Для получения части картинки необходимо знать координаты точки по оси X и Y, это будет верхний левый угол квадрата, который будет вырезан. Также потребуется размер вырезаемого фрагмента – ширина и высота.
Читать далее «Получение фрагмента картинки»