我正在尝试在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控制器中使用图像干预时,只会显示此错误。
有什么办法可以解决这个问题?谢谢
答案 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库。
由于它是共享主机,因此提供商有责任帮助解决此问题。