Вот такой код есть
<?php
// Тип содержимого
header('Content-Type: image/png');
// Создание изображения
$im = imagecreatetruecolor(1200, 630);
// Создание цветов
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// Текст надписи
$text = 'test';
// Замена пути к шрифту на пользовательский
$font = '/var/www/www-root/data/www/mycrimea.online/wp-content/themes/publisher-child/globerbold.ttf';
// Тень
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Текст
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>
но как не создать картинку а наложить уже на имеющуюся сначала фон полупрозрачный, а потом уже поверх текст с логотипом?
Для удобства, загрузили весь набор в Github. Ниже код и картинки до/после.
<?
$img = imagecreatefrompng("res/source.png");
$img_cover = imagecreatefrompng("res/transparent.png");
$img_logo = imagecreatefrompng("res/logo.png");
$font_path = "ptsans.ttf";
$font_path_bold = "ptsans-bold.ttf";
$save_file = "output/".uniqid().'.png';
$quality = 80;
$temp = "";
$date = "25.07.2018, 15:00";
$title = "Lorem ipsum dolor sit amet, consectetur adipiscing elit";
/*-----------------------------------------------------------------
| Накладываем полупрозрачный фон
------------------------------------------------------------------*/
imagealphablending($img, true);
imagesavealpha($img, true);
imagealphablending($img_cover, true);
imagesavealpha($img_cover, true);
imagecopy($img, $img_cover, 0, 0, 0, 0, imagesx($img_cover), imagesy($img_cover));
/*-----------------------------------------------------------------
| Накладываем лого
------------------------------------------------------------------*/
imagealphablending($img, true);
imagesavealpha($img, true);
imagealphablending($img_logo, true);
imagesavealpha($img_logo, true);
imagecopy($img, $img_logo, 44, 44, 0, 0, imagesx($img_logo), imagesy($img_logo));
/*-----------------------------------------------------------------
| Накладываем текст и дату
------------------------------------------------------------------*/
$line = array(32, 64, 96);
if (mb_strlen($title) > $line[0]) {
$pos = mb_strlen(explode(' ', mb_substr($title, $line[0], 999), 2)[0]);
$line[0] = $pos+$line[0];
}
if (mb_strlen($title) > $line[1]) {
$pos = mb_strlen(explode(' ', mb_substr($title, $line[1], 999), 2)[0]);
$line[1] = $pos+$line[1];
}
if (mb_strlen($title) > $line[0]) {
$title = mb_substr($title, 0, $line[0])."\n".mb_substr($title, $line[0]+1, $line[1]-$line[0])."\n".mb_substr($title, $line[1]+1, $line[0]);
}
# Add date
$color = imagecolorallocate($img, 155, 192, 239);
$text = $date;
imagettftext($img, 12, 0, 44, 152, $color, $font_path, $text);
# Add City
$color = imagecolorallocate($img, 155, 192, 239);
$text = mb_strtoupper($city);
imagettftext($img, 12, 0, 260, 151, $color, $font_path_bold, $text);
# Add Title
$color = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$text = $title;
imagettftext($img, 24, 0, 44, 214, $color, $font_path_bold, $text);
# Save Image
imagepng($img, $save_file, 9);
imagedestroy($img);
?>
До:
После:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу понять в чем моя ошибкаСо страницы идет ajax-запрос на jQuery к php скрипту (версия php - 7
Как в PHP расшифровать пароль с базы? Сначала я создал хеш пароля и внес его в базу
Всем приветНи как не могу найти на просторах интернета hook, который заработает для search
Имеется HTML страница запущенная на IIS и PHP страница запущенная на Denwer