Содержит текст в прямоугольнике с imgattfbbox

У меня есть небольшая проблема для создания текста в изображении с помощью PHP. Я должен сделать это:

оказывать

На самом деле, я не могу сделать разрыв строки. И вот мой код:

$text_color = imagecolorallocate($bg, 0, 0, 0);
$text_font = './arial.ttf';
$text_size = 14;
$text_angle = 0;
$text_text = 'Purus aliquet rhoncus pulvinar velit, cursus diam? Montes pid augue, aliquam, porta, vel purus integer rhoncus placerat, etiam urna in, massa mus. Egestas enim, ac, hac tincidunt ac in elementum elit cursus tincidunt sed.';
$text_box = imagettfbbox($text_size, $text_angle, $text_font, $text_text);
$text_w = 280;
$text_h = 220;
$text_x = 300;
$text_y = 70;
$text_x_center = $text_x + $text_w;
$text_y_center = $text_y + $text_h;

imagettftext($bg, $text_size, $text_angle, $text_x_center, $text_y_center, $text_color, $text_font, $text_text);

заранее благодарю за ответ.

0

Решение

Я думаю, что лучшая идея будет использовать stil/gd-text Библиотека в этой ситуации.

<?php
require __DIR__.'/../vendor/autoload.php';

use GDText\Box;
use GDText\Color;

$im = imagecreatetruecolor(600, 500);
$backgroundColor = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $backgroundColor);

$box = new Box($im);
$box->setFontFace('./arial.ttf');
$box->setFontColor(new Color(0, 0, 0));
$box->setFontSize(14);
$box->setBox(
300, // textbox distance from left edge
70,  // textbox distance from top edge
280, // textbox width
220  // textbox height
);
$box->setTextAlign('left', 'top');
$box->enableDebug(); // this line colors text for debugging purposes
$box->draw('Purus aliquet rhoncus pulvinar velit, cursus diam? Montes pid augue, aliquam, porta, vel purus integer rhoncus placerat, etiam urna in, massa mus. Egestas enim, ac, hac tincidunt ac in elementum elit cursus tincidunt sed.');

Я думаю, что код самоочевиден, но если у вас есть какие-либо вопросы, просто спросите.
Демонстрация:

демонстрация

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]