簡體   English   中英

Laravel - 在 Jobs 中使用圖像干預。 imagettfbbox 錯誤

[英]Laravel - Using image intervention in Jobs. imagettfbbox error

我正在嘗試在我的 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 控制器中使用圖像干預時,就會出現這個錯誤。

有什么辦法可以解決這個問題嗎? 謝謝

當你說它在普通控制器中工作時,你的意思是當你從 http 協議(瀏覽器/郵遞員/等)調用它時

您很可能有兩個 PHP 配置(標准配置); 一種用於 Web (FPM),一種用於控制台 (CLI)。

只有在使用作業控制器時才會出現錯誤的原因是 PHP CLI 配置中缺少 GD 擴展。

您可以在控制台中檢查是否使用php -m |grep gd啟用了 GD 擴展。 如果啟用,你應該有這樣的東西

$ php -m |grep gd
12:gd

如果您沒有得到第二行,則需要在正確的 ini 文件(用於 CLI 的文件)中啟用擴展名。

如果您不知道它在哪里,請嘗試運行php -i | grep 'Configuration File' php -i | grep 'Configuration File' ,你應該得到這樣的東西:

Configuration File (php.ini) Path => /etc/php/7.x/cli
Loaded Configuration File => /etc/php/7.x/cli/php.ini

希望這可以幫助

- - - - - - 編輯 - - - - - - - -

根據PHP.net imagettftext

此函數需要 GD 庫和 » FreeType 庫。

您必須在 CLI 配置中缺少 FreeType 庫。

由於它是共享主機,因此提供商有責任幫助解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM