В данной статье расскажу, как можно упростить рутинную работу по созданию однотипных изображений с наложением текста. Этот материал будет полезен тем, кто создает картинки для заставок к видео.
Итак, задача: Генерировать изображение с разрешением 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);
Буду благодарен если поставите лайк для рейтинга!