В данной статье расскажу, как можно упростить рутинную работу по созданию однотипных изображений с наложением текста. Этот материал будет полезен тем, кто создает картинки для заставок к видео.
Итак, задача: Генерировать изображение с разрешением 1280х720 по заданному шаблону с наложением текста и фотографией.
Генерация изображения с наложением текста на PHP
Ниже представлен код с комментариями, если что-то непонятно пиши в комментариях, постараюсь ответить
$image_path = "images/bg_002.jpg"; //Путь к изображению
$text1 = "Лектор:"; // текст, который мы написали здесь
$text2 = "Тема:"; // текст, который мы написали здесь
if (!$_GET['text3']) {
$text3 = "Иванов Иван Иванович"; // текст, который мы написали здесь
$text4 = "\"Как наложить текcт и фото на изображение средствами PHP\""; // текст, который мы написали здесь
$text5 = "Регалии лектора и его достижения"; // текст, который мы написали здесь
$stamp_path = "images/stamp1_001.png"; //Путь к изображению штампа 1
}
else {
$text3 = $_GET['text3'];
$text4 = $_GET['text4'];
$text5 = $_GET['text5'];
$stamp_path = $_GET['stamp_path'];
}
$file_new = "images/result/".$_GET['file_new']." ".$text3.".png"; //Путь к изображению
$img = imagecreatefromjpeg($image_path); // создаём новое изображение из файла
$stamp1 = imagecreatefrompng($stamp_path); // создаём новое изображение штамп 1
$font = "fonts/HelveticaRegular.ttf"; // путь к шрифту
$font_size = 24; // размер шрифта общий
$font_size5 = 14; // размер шрифта 5 элемента
$color = imageColorAllocate($img, 255, 255, 255); //Цвет шрифта
imagecopy($img, $stamp1, 693, 68, 0, 0, imagesx($stamp1), imagesy($stamp1)); // наложение штампа на основное изображение
//Разметка самого текста и его позиционирование
imagettftext($img, $font_size, 0, 43, 533, $color, $font, $text1);
imagettftext($img, $font_size, 0, 73, 633, $color, $font, $text2);
imagettftext($img, $font_size, 0, 167, 533, $color, $font, $text3);
imagettftext($img, $font_size, 0, 167, 633, $color, $font, $text4);
imagettftext($img, $font_size5, 0, 167, 560, $color, $font, $text5);
header("Content-type: image/png");
//imagepng($img, $file_new, 0); // сохранение файла на сервер
imagepng($img); // вывод изображения в браузер
imagedestroy($img);
Буду благодарен если поставите лайк для рейтинга!
