2016-07-06 74 views
1

我有完全相同的问题,因为这SO,不幸的是没有收到任何答案: PHP GD - Empty boxPHP GD图像库显示空盒/破碎的形象

我想开始使用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类型 图像/ PNG移送:“http://hhvm.hgv.test/stats/”。导航到 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"; 
    } 

输出:

“PHP GD库安装在Web服务器上”

回答

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。它也允许你指定一个字体。请参阅链接的示例以获取有关其用法的更多信息。