我遇到与此SO完全相同的问题,遗憾的是没有收到任何答案: PHP GD - Empty box
我想开始使用PHP GD图像库,并试图从documentation for imagecreate运行示例代码。我正在使用Mercury Vagrant (HGV)进行测试。
示例:
<?php
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>
运行此选项会产生损坏的图像或带有实线边框的空框。开发人员控制台中的唯一信息是:
资源被解释为文档但以MIME类型传输 image / png:&#34; http://hhvm.hgv.test/stats/&#34;。导航到 http://hhvm.hgv.test/stats/
删除上面的代码并插入if语句以检查GD库,表明它已安装。
GD检查:
if (extension_loaded('gd') && function_exists('gd_info')) {
echo "PHP GD library is installed on your web server";
} else {
echo "PHP GD library is NOT installed on your web server";
}
输出:
&#34; PHP GD库安装在您的Web服务器上#34;
答案 0 :(得分:1)
我试过,你的代码开箱即用。使用GD库时,遇到此类问题很常见。您可以尝试注释掉imagestring
这是次要的,然后查看是否可以将图像投射到浏览器。一旦我使用GD库,更新PHP版本会导致使用imagepng
的页面失败。只需将字符串从单引号更改为双引号即可解决问题!在各种情况下,问题可能是版本特定的。
P.S。我有一个非常简单且有效的项目,使用此处托管的GD库:https://github.com/usamamuneeb/PHP-JS/blob/master/passport-generator/passport-generator.php
尝试运行此操作以检查问题是否与您安装的PHP版本无关。
同时尝试使用imagettftext
代替imagestring
。它还允许您指定字体。有关其用法的更多信息,请参阅我链接的示例。