微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Phalcon \ Image \ Adapter \ Gd引发文本函数异常

如何解决Phalcon \ Image \ Adapter \ Gd引发文本函数异常

我的代码中包含以下内容

use Phalcon\Image\Adapter\GD as Image;
...
    $imagePath = BASE_DIR . '/public/img/map-icons/' . $client->getId() . '/' . $file;
    $image = new Image($imagePath);
...
    $fontFile = $this->getFontPath();
    $image->text($text,$x,$y,1,'#FFFFFF',$fontSize,$fontFile);

在Phalcon 1.3.4和PHP 5.4.45下工作正常,但是当我将应用程序迁移到运行Phalcon 3.4.5和PHP 7.3.17的新服务器时 $image->text($text,$fontFile);出现以下错误

Project staging.api.my-domain.com raised exception class Phalcon\lmage\Exception with message "Call to imagettfbBoxO Failed" at gd.zep,line 357

传递给$image->text(..)文字值如下:

$image->text(H,9,20,11,'/var/www/vhosts/staging.api.mydomain.com/src/fonts/arialbd.ttf');

当我尝试此处https://www.PHP.net/manual/en/function.imagettfbBox.PHP上的页面上提供的PHP imagettfbBox示例时,该示例起作用并在白框

enter image description here

显示对角线文本,因此我认为imagettfbBox没有问题。但是,PHP手册中为imagettfbBox显示的参数如下:

imagettfbBox ( float $size,float $angle,string $fontfile,string $text )

但是对于phalcon gd text(),它们是:

text (mixed $text,[mixed $offsetX],[mixed $offsetY],[mixed $opacity],[mixed $color],[mixed $size],[mixed $fontfile])

解决方法

主机上的gd安装和/或字体文件一定存在问题。

在内部,text()调用PHP的imagettfbbox。如果您创建了一个简单的PHP脚本,并将其与参数一起使用此方法,则可以获得有关正在进行的事情的更多信息

,

这是Phalcon 3.4.5中的错误。参见https://github.com/phalcon/cphalcon/issues/15188。固定的最低版本是4.1。

,

我建议不要使用 Phalcon 的 GD 包装器。

它以大尺寸生成低质量图像,因为它使用 imagecopyresized 而不是 imagecopyresampled。

我发现 Python/PILLOW 使用起来要简单得多,而且可以产生正确的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。