我在Laravel5中使用Intervention软件包在图像中插入文本,它运行良好。但是,如果我添加字体(.ttf),它会显示以下错误。目录是正确的。
Font.php第30行中的NotSupportedException:内部GD字体()不可用。仅使用1-5。
$image = Image::make(public_path('/userimage/') . "user.png");
$image->text('text string', 10, 5, function($font) {
$font->file(asset('/web/fonts/OpenSans-Regular.ttf'));
$font->size(50);
$font->color('#fdf6e3');
$font->angle(45);
});
答案 0 :(得分:1)
GD库不支持自定义字体。你应该使用Imagick。转到config / image.php并将驱动程序值编辑为'imagick'(在您为其实际安装扩展程序后):
'driver'=> 'imagick'
asset('/web/fonts/OpenSans-Regular.ttf')
会返回网址。你必须提供一条路径。请改用public_path('web/fonts/OpenSans-Regular.ttf')
。
答案 1 :(得分:1)
Removing public_path() worked for me.
$image = Image::make('userimage/') . "user.png";
$image->text('text string', 10, 5, function($font) {
$font->file('web/fonts/OpenSans-Regular.ttf');
$font->size(50);
$font->color('#fdf6e3');
$font->angle(45);
});
答案 2 :(得分:0)
我会这样做:
dd(asset('/web/fonts/OpenSans-Regular.ttf'))
并查看是否匹配
预期的路径。答案 3 :(得分:0)
你可以尝试两件事:
code(right(A1))>=65,code(right(A1))<=90
$font->file(asset('web/fonts/OpenSans-Regular.ttf'));
以防万一。答案 4 :(得分:0)
使用base_path()
代替asset()
。
示例:
$font->file(base_path('public/web/fonts/OpenSans-Regular.ttf'));
答案 5 :(得分:0)
试试这个:$ font-&gt;文件(public_path('fontnameExample.ttf'));