干预字体,文本居中对齐,环绕左边缘

Intervention Font, Text align center, wraps around left edge

提问人:Line in Linus 提问时间:10/7/2023 更新时间:10/7/2023 访问量:33

问:

我正在尝试在图像上生成文本。 为了能够在后端正确定位图像,我需要生成文本图像,然后将文本图像放置在真实图像上。 (拉拉维尔 10)

当我使用它时,它按预期工作,但是当尝试“$font->align('center')'''”时,只有一半的文本是可见的(文本以文本图像的左边缘为中心。$font->align('left')

如何使文本图像中的文本居中对齐?

use Image;
use Intervention\Image\Gd\Font;
use Intervention\Image\ImageManager;
   $font = new Font("12345\n12345");
            $font->valign('top');
            $font->align('center');
            $font->file('/var/www/html/storage/fonts/' . $text['fontFamily'] . '.ttf');
            $font->size($text['fontSize']);
            $font->color($text['color']);
            $size = $font->getBoxSize();

            $gdmanager = new ImageManager(array('driver' => 'gd'));
            $image_text = $gdmanager->canvas( $size['width'], $size['height']);
            $font->applyToImage($image_text);

            $fontImage = $gdmanager->make($image_text->encode('data-url'));

            $img->insert(
                $fontImage,
                $text['position'] ?? "center",
                $text['x'] ?? 0,
                $text['y'] ?? 0
            );

示例,align = left(如预期)enter image description here

例如,align = center(仅字符串的一半)enter image description here

Laravel GD干预

评论

0赞 slp 10/8/2023
为什么通过 $image_text + $img->insert(...) 绕行而不是直接$img->text(...)?

答: 暂无答案