После формирования изображения, над ним есть несколько вариантов действий:
- Сохранить;
- Вывести в браузер.
Сохраняем изображение
$font_path = 'arial.ttf'; //устанавливаем шрифт
$save_path = $_SERVER['DOCUMENT_ROOT'].'/img/'.date("Y_m_d_H_i_s").'.jpg'; //устанавливаем путь сохранения картинки
$base_img = $_SERVER['DOCUMENT_ROOT'].'/base_img.jpg'; //устанавливаем базовое изображение, на которое будем наносить надписи
$img = imagecreatefromjpeg($base_img); //создаем объект изображения, который будем использовать при формировании нового изображения
$white = imagecolorexact($img, 255, 255, 255); //задаем цвет, который можем потом использовать для окрашивания текста
$black = imagecolorexact($img, 0, 0, 0); //задаем цвет, который можем потом использовать для окрашивания текста
imagefttext($img, 25, 0, 405, 550, $white, $font_path, 'text_text'); //пишем текст в определенном координатами месте
imagejpeg($img, $save_path, 100); //сохраняем изображение (еще можно вывести результат в браузере)
imagedestroy($img); //освобождаем памятьВыводим изображение в браузер
header('Content-Type: image/png');
imagejpeg($img, NULL, 100); //Выводим изображение в браузер
imagedestroy($img); //освобождаем памятьРисование фигур
Примеры рисования простейших фигур.
Горизонтальные линии
imageline($img, 350,1750,2050,1750, $white); //рисуем горизонтальную линию
imageline($img, 350,1751,2050,1751, $white); //рисуем горизонтальную линию - продвигаемся на пиксель, чтобы сделать линию толще
imageline($img, 350,1752,2050,1752, $white); //рисуем горизонтальную линию - продвигаемся на пиксель, чтобы сделать линию толще
imageline($img, 350,1753,2050,1753, $white); //рисуем горизонтальную линию - продвигаемся на пиксель, чтобы сделать линию толщеПрямоугольник без внутреннего фона с радиусом
function roundrect($im, $x1, $y1, $x2, $y2, $rad, $col) {
imageline($im, ($x1 + $rad), $y1, ($x2 - $rad), $y1, $col);
imageline($im, ($x1 + $rad), $y2, ($x2 - $rad), $y2, $col);
imageline($im, $x1, ($y1 + $rad), $x1, ($y2 - $rad), $col);
imageline($im, $x2, ($y1 + $rad), $x2, ($y2 - $rad), $col);
imagearc($im, ($x1 + $rad), ($y1 + $rad), (2 * $rad), (2 * $rad), 180, 270, $col);
imagearc($im, ($x2 - $rad), ($y1 + $rad), (2 * $rad), (2 * $rad), 270, 360, $col);
imagearc($im, ($x2 - $rad), ($y2 - $rad), (2 * $rad), (2 * $rad), 0, 90, $col);
imagearc($im, ($x1 + $rad), ($y2 - $rad), (2 * $rad), (2 * $rad), 90, 180, $col);
}
$background_white = imagecolorexactalpha($img, 255, 255, 255, 70); //задать цвет текста с прозрачностью
roundrect($img, 250, 1500, 2150, 2600, 40, $background_white); //рисуем не закрашенный прямоугольникПрямоугольник с внутренним фоном без радиуса
$background_white = imagecolorexactalpha($img, 255, 255, 255, 70); //задать цвет текста с прозрачностью
imagefilledrectangle($img, 250, 1500, 2150, 2600, $background_white);Задаем цвета
$black = imagecolorexact($img, 0, 0, 0); //задать цвет текста
$background_white = imagecolorexactalpha($img, 255, 255, 255, 70); //задать цвет текста с прозрачностьюНе стоит забывать,
- многие шрифты не поддерживают кириллицу. Если нужно писать русский текст, стоит использовать определенные шрифты. Например arial или arial_bold.
- Важно обратить внимание, с помощью какой функции создаем изображение. Если базовое изображение формата PNG, функция imagecreatefromjpeg не подойдет. Нужно использовать imagecreatefrompng.

Об авторе
Сергей Житников - Веб-разработчик
Занимаюсь веб-разработкой более 5 лет. Специализируюсь на создании адаптивных сайтов и веб-приложений на HTML5, CSS3 и JavaScript. Работаю с популярными CMS и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.
Есть проект или идея? Буду рад помочь!
Связаться со мной