Наложение текста на картинку средствами php

Опубликовано: Воскресенье, 01 Октябрь 2017

В данной статье расскажу, как можно упростить рутинную работу по созданию однотипных изображений с наложением текста. Этот материал будет полезен тем, кто создает картинки для заставок к видео.

Итак, задача: Генерировать изображение с разрешением 1280х720 по заданному шаблону с наложением текста и фотографией.

Генерация изображения с наложением текста на PHP

Ниже представлен код с комментариями, если что-то непонятно пиши в комментариях, постараюсь ответить

$image_path = "images/bg_002.jpg"; //Путь к изображению

$text1 = "Лектор:"; // текст, который мы написали здесь
$text2 = "Тема:"; // текст, который мы написали здесь

if (!$_GET['text3']) {
$text3 = "Иванов Иван Иванович"; // текст, который мы написали здесь
$text4 = "\"Как наложить текмт и фото на изображение средствами 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);

Демо   Скачать архив с кодом

Буду благодарен если поставите лайк для рейтинга, поделитесь в соцмедиа или напишите коммент. Надеюсь, что статья оказалась вам полезной!

Просмотров 3279
(8 likes)
Последнее изменение Среда, 27 Июнь 2018

Поделиться с другими


 

Виктор 20.11.2018
А можно как нибудь после заполнения, что б картинка сохранялась на хостинге?
Валерия 27.06.2018
Спасибо, полезные статьи пишете
АнжеликаП 02.10.2017
Антон, спасибо за подробный ответ, вы мне очень помогли!
Anton Rubanenko 02.10.2017
АнжеликаП, это отдельный модуль, можете разместить папку из архива в корень сайта и использовать ссылку вида http://ваш_сайт/iimagenerator/index.php
в файле generator.php можете менять параметры для ваших нужд, а именно текст, фоновое изображение, шрифт, размер шрифта, цвет, положение текста и т.д. :-)
АнжеликаП 02.10.2017
Статья очень нужная , но короткая, не сразу разберешься. Хорошо помогла Демо версия. Не сразу сообразила, для того, чтобы увидеть результат, надо разместить папку со всем содержимым у себя на хостинге. Вопрос, я работаю пока только с HTML, можно ли этот код внедрить туда? :eek:
   
© Все права защищены. Видеосъёмка СПБ Sankt-video 2019