ЗАМЕТКИ И КЕЙСЫ

Пишем о том, что нам интересно, делимся знаниями и опытом



 

Наложение текста на картинку средствами 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);

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

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

Просмотров: 6818
(18 )
Материал обновлен: 27 июня 2018

   
© Все права защищены. Видеосъёмка СПБ Sankt-video 2022