使用php和drupal创建动态图像

时间:2015-08-06 08:08:15

标签: php drupal drupal-7

我是drupal和php的新手。现在我正在尝试通过在zen子主题中编辑page.tpl.php模板来自定义我自己的drupal页面,到目前为止,与数据和文本相关的所有php代码在页面上都正常工作。

然而,当我试图通过php添加动态图像来进一步自定义页面时,事情不起作用。该站点现在返回一个断开的链接图标,该图标阻止应该在页面上显示的所有其他内容。我已经测试了在单个php页面上生成动态图像的代码,它运行良好。我想知道如何解决这个问题并让动态图像在我的drupal网站上正确显示?非常感谢提前。

这是我的代码

<div id="projects">
<?php
global $node;
$projectname = db_query("SELECT title  FROM {node} 
where type='project' and uid= :uid", array(':uid' =>$user->uid))-    >fetchAll();
if ($projectname){
foreach($projectname as $item) {
print $item->title ;
echo "<br>";  
}
}
else{
print "no project";
}  
?>

#this is the chunk of codes that generates the dynamic image
<?php
//$image = @imagecreate(200, 20)or die("Cannot Initialize new GD image   stream");
$image = imagecreate(200, 20);
$background = imagecolorallocate($image,0,0,0);
$foreground = imagecolorallocate($image,255,255,255);
imagestring($image,5,5,1,"This is a Test",$foreground);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
?>

</div>

1 个答案:

答案 0 :(得分:1)

您生成的图片需要位于自己的页面中。 imagejpeg将打印原始图像二进制输出。

要让您的网页html页面显示它,您可以使用基本<img src="">导入它。

恢复:

  • image.php =&gt;渲染完整的二进制图像
  • page.php =&gt;带有<img src="image.php">的标准网页html页面,用于获取动态生成的图像

编辑:我可能已经快速阅读了这个问题,但对我来说仍然不清楚...... 最常见的问题是错误或文本输出已与图像一起发送并破坏原始输出。删除标题以临时显示输出将有助于显示已发送的内容。还要关注<?php块,在PHP代码之前的一个空格会破坏图像 简而言之:image.php必须只返回原始二进制图像数据。