Phalcon\Image\Adapter\Gd 文本函数抛出异常
Phalcon\Image\Adapter\Gd throwing an exception for the text function
我的代码中有以下内容:
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, $x, $y, 1, '#FFFFFF', $fontSize, $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, 1, '#FFFFFF', 11, '/var/www/vhosts/staging.api.mydomain.com/src/fonts/arialbd.ttf');
当我尝试此处页面上给出的 PHP's imagettfbbox 示例时 https://www.php.net/manual/en/function.imagettfbbox.php
该示例有效并在白框中显示对角线文本 ,所以我不不认为 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 安装一定有问题 and/or 字体文件。
在内部,text()
调用 PHP 的 imagettfbbox。如果您创建简单的 PHP 脚本,将此方法与您的参数一起使用,您可以获得更多关于正在发生的事情的信息
这是 Phalcon 3.4.5 中的错误。参见 https://github.com/phalcon/cphalcon/issues/15188。它将修复的最低版本是 4.1。
我建议不要使用 Phalcon 的 GD 包装器。
它生成大尺寸的低质量图像,因为它使用 imagecopyresized 而不是 imagecopyresampled。
我发现 Python/PILLOW 使用起来简单得多,而且生成的结果也正确。
我的代码中有以下内容:
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, $x, $y, 1, '#FFFFFF', $fontSize, $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, 1, '#FFFFFF', 11, '/var/www/vhosts/staging.api.mydomain.com/src/fonts/arialbd.ttf');
当我尝试此处页面上给出的 PHP's imagettfbbox 示例时 https://www.php.net/manual/en/function.imagettfbbox.php
该示例有效并在白框中显示对角线文本
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 安装一定有问题 and/or 字体文件。
在内部,text()
调用 PHP 的 imagettfbbox。如果您创建简单的 PHP 脚本,将此方法与您的参数一起使用,您可以获得更多关于正在发生的事情的信息
这是 Phalcon 3.4.5 中的错误。参见 https://github.com/phalcon/cphalcon/issues/15188。它将修复的最低版本是 4.1。
我建议不要使用 Phalcon 的 GD 包装器。
它生成大尺寸的低质量图像,因为它使用 imagecopyresized 而不是 imagecopyresampled。
我发现 Python/PILLOW 使用起来简单得多,而且生成的结果也正确。