Генерация изображения с заданным текстом
Готовлю сайт с онлайн тестированием (заказчик называет это громким словом олимпиады).
Стоит задача выдавать каждому участнику сертификат об участии.
Возник вопрос как используя общее для всех фоновое изображение сгенерировать на каждом сертификате Имя и Фамилию участника? Причем это должна быть картинка пригодная для скачивания и печати.
Само собой не стоит вопрос как вытащить и передать скрипту нужные текстовые данные.
Меня интересует именно генерация изображения с динамичным текстом.
Кто сталкивался с подобным вопросом? Может посоветуете какие то конкретные готовые решения.
На крайний случай думаю можно сгенерировать PDF документ.
Стоит задача выдавать каждому участнику сертификат об участии.
Возник вопрос как используя общее для всех фоновое изображение сгенерировать на каждом сертификате Имя и Фамилию участника? Причем это должна быть картинка пригодная для скачивания и печати.
Само собой не стоит вопрос как вытащить и передать скрипту нужные текстовые данные.
Меня интересует именно генерация изображения с динамичным текстом.
Кто сталкивался с подобным вопросом? Может посоветуете какие то конкретные готовые решения.
На крайний случай думаю можно сгенерировать PDF документ.
Поблагодарить автора
Отправить деньги
Комментарии: 5
напишите сниппет, который будет накладывать текст на картинку и сохранять ее где вам надо.
можно использовать imagettftext
можно использовать imagettftext
Я и рад бы, не получается почему то.
Может Ваш взгляд подскажет в чем ошибка
Может Ваш взгляд подскажет в чем ошибка
header('Content-Type: image/jpeg');
$im = imagecreatefromjpeg('/assets/testCert.jpg');
// get the image size
$w = imagesx($im);
$h = imagesy($im);
// place some text (top, left)
imagettftext($im, 60, 0, 300, 100, 0xFFFFFF, '/assets/arial.ttf', 'Текст');
imageJpeg($im, "/assets/testCert.jpg", 85);
imagedestroy($im);
указывайте полный путь до изображения и до файла шрифта
$im = imagecreatefromjpeg(MODX_BASE_PATH.'assets/testCert.jpg');
и тд
да все нормально работает.
Ток что попробовал.
t1.vgrish.ru/img/img.php?text=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82!,%20%D1%8F%20%D0%BD%D0%B0%D0%B4%D0%BF%D0%B8%D1%81%D1%8C%20%D0%BD%D0%B0%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B5%20%20))))
Ток что попробовал.
t1.vgrish.ru/img/img.php?text=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82!,%20%D1%8F%20%D0%BD%D0%B0%D0%B4%D0%BF%D0%B8%D1%81%D1%8C%20%D0%BD%D0%B0%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B5%20%20))))
<?php
define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)) . '/core/config/config.inc.php';
require_once MODX_BASE_PATH . 'index.php';
if (empty($_GET['text'])) {
die('введите текст');
}
$opts = [
'background' => MODX_ASSETS_PATH . 'img/background.jpg',
'font' => MODX_BASE_PATH . 'img/arial.ttf',
'save' => MODX_ASSETS_PATH . 'img/g/',
'size' => 30,
'top' => 200,
'left' => 200,
'text' => $_GET['text']
];
$path = $opts['save'] . sha1($opts['text']) . '.jpg';
if (!file_exists($path)) {
$img = imagecreatefromjpeg($opts['background']);
$color = imagecolorallocate($img, 250, 0, 0);
/* выводим текст на изображение */
imagettftext(
$img,
$opts['size'],
0,
$opts['left'],
$opts['top'],
$color,
$opts['font'],
$opts['text']
);
imagejpeg($img, $path, 100);
imagedestroy($img);
}
echo '<img src="' . str_replace(MODX_BASE_PATH, MODX_BASE_URL, $path) . '">';
gist.github.com/vgrish/5212d75feea58e96b08b
Добрый день. Можно ли использовать ваше решение для того, чтобы генерировать картинку с текстом для новости — например с ее заголовком, если фото для новости не загружено?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.