图像干预使用具有特殊字符的文本绘制图像

时间:2017-12-20 15:27:18

标签: php image laravel laravel-5

我在Laravel 5.5中使用ImageIntervention来生成图像。

当我的文字为this is my text ♣时,会呈现为方框。 如何让PHP呈现正确的字符?

我的代码是这样的:

$overlay = \Image::canvas(600, 500 );
            $overlay->rotate( 2);
            $overlay->text(
                'this is my text ♣',
                $overlay->getWidth() / 2,
                $overlay->getHeight() / 2,
                function ( $font ) use ( $textData ) {
                    /** @var \Intervention\Image\Gd\Font $font */
                    $font->file( resource_path( 'assets/fonts/OpenSans-Bold.ttf' ) );
                    $font->size( 100 );
                    $font->angle( 2 );
                    $font->valign( 'center' );
                    $font->align( 'center' );
                } );

所有其他工作正常,只是文本的呈现出错了,我不明白为什么。

我发现ImageIntervention正在这里绘制文字: https://github.com/Intervention/image/blob/master/src/Intervention/Image/Gd/Font.php#L202

所以它使用imagettftext来绘制文本。 Open Sans字体确实支持该角色,所以我不认为这是问题。

这里可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

查看UTF-8杂项符号

你正在寻找的是:& 9827; & -clubs; (没有 - )