【问题标题】:Php "imagettftext" return null image(not working) [closed]PHP“imagettftext”返回空图像(不工作)[关闭]
【发布时间】:2012-12-16 20:15:52
【问题描述】:

我在本地服务器和在线网络服务器上进行了测试...但返回一个空图像...

检查返回结果... http://s8.postimage.org/sthztzj5x/null_image.jpg

<?php
Set the content-type
header('Content-Type: image/png');
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Testing...';
$font = 'arial.ttf';
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>

【问题讨论】:

  • 您没有检查任何这些返回值。其中一项功能可能失败了。注释掉header 调用,添加error_reporting(-1); ini_set('display_errors', true); 并重试。我打赌你会看到一个大的 PHP 错误、警告或通知。
  • 您需要在 PHP 中启用错误日志记录(日志记录很重要,因为图像不会向您显示文本)。将报告设置为最高级别。然后按照错误日志,它会告诉你错误在哪里。另见how do i debug PHP Image with print?PHP invalid image's and error handling

标签: php php-gd


【解决方案1】:

这对我来说是正确的。

http://www.laprbass.com/RAY_temp_rameez.php

<?php // RAY_temp_rameez.php
error_reporting(E_ALL);

// Set the content-type
header('Content-Type: image/png');
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = 'Testing...';
$font = 'fonts/verdanaz.ttf';
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);

【讨论】:

  • 这应该被编辑到您现有的答案中和/或应该删除一个或另一个。
  • @Ray Paseur:我现在第二次看到这个。您在使用编辑工具时遇到问题吗?如果您不提供反馈或清理内容,您可能会看到一些反对票和标记。保重。
  • @RayPaseur,您应该发布一个答案,以纠正所有提出的问题(以及存在并需要解决但未提出的问题)。在极少数情况下,您可能想要提出两个完全(哲学上)不同的答案,并且可以单独发布它们。这不是其中之一。我想在过去的一年里我已经看到它做了十几次,然后只针对非常好的问题。这......这是一个糟糕的问题。
  • 另外,尊重你似乎通常知道你在做什么......你需要潜伏更多。 SO 与 EE 有着截然不同的运营方式和截然不同的文化,你将需要更多的时间来了解当地的风俗习惯。您可能还想浏览the meta faq
  • @Charles:我去了元常见问题解答并将显示设置为每页 50 个。它给了我 3 页的回复。如果您能对您所看到的文化问题进行简要总结,我将不胜感激。我认为我可以为 SO 社区做出贡献,如果您能帮助我找到实现这一目标的方法,那就太好了。另外,我不倾向于假设任何问题都是一个坏问题。我是人,我会犯错误,即使在我为波士顿大学教授的 PHP 中也是如此。所以请帮我一把,谢谢。
【解决方案2】:

此脚本的第二行导致 PHP 解析错误。像这样在它的前面添加双斜杠:

// 设置内容类型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2012-09-21
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    相关资源
    最近更新 更多