PHP GD图像库显示空框/损坏图像

时间:2016-07-06 22:40:23

标签: php image-processing vagrant gd

我遇到与此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;

1 个答案:

答案 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。它还允许您指定字体。有关其用法的更多信息,请参阅我链接的示例。