Laravel-在Jobs中使用图像干预。 imagettfbbox错误

时间:2018-12-31 01:35:45

标签: php laravel intervention

我正在尝试在Jobs Controller中使用图像干预。首先,出现“图像源不可读错误”。但是后来我通过添加storage_path进行了修复。现在显示此错误:

Call to undefined function Intervention\Image\Gd\imagettfbbox() 

当我想在图像上写字体时会发生这种情况。这些是我的代码:

$img->text($line, $x_subject, $y, function($font) use ($font_size_subject, $font_path){
    $font->file(storage_path($font_path));
    $font->size($font_size_subject);
    $font->color('#000000');
    $font->align('center');
    $font->valign('middle');
});

当我尝试在普通控制器中使用它时没有错误。当我在Jobs控制器中使用图像干预时,只会显示此错误。

有什么办法可以解决这个问题?谢谢

1 个答案:

答案 0 :(得分:1)

当您说它在普通控制器中工作时,是指您从http协议(浏览器/邮递员/等)调用它。

您很可能具有两个PHP配置(按标准);一种用于网络(FPM),一种用于控制台(CLI)。

仅在使用作业控制器时出现错误的原因是,PHP CLI配置中缺少GD扩展名。

您可以在控制台中检查是否已使用apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'io.fabric' 启用了GD扩展名。如果启用,则应该有类似的内容

php -m |grep gd

如果没有得到第二行,则需要在正确的ini文件(用于CLI的文件)中启用扩展名。

如果您不知道它在哪里,请尝试运行$ php -m |grep gd 12:gd ,您应该得到类似以下的内容:

php -i | grep 'Configuration File'

希望这会有所帮助

------------编辑---------------

根据tuple

  

此功能需要GD库和»FreeType库。

您必须在CLI配置中缺少FreeType库。

由于它是共享主机,因此提供商有责任帮助解决此问题。