html可以与php中的动态生成图像一起使用吗?

时间:2011-10-25 07:35:44

标签: php html gd

我正在使用此代码创建图像

<?php

 // Set the content-type
 header('Content-Type: image/png');

 // Create the image
 $im = imagecreatetruecolor(400, 30);

 // Create some colors
 $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);

 // The text to draw
 $text = 'Testing...';
 // Replace path by your own font path
 $font = 'arial.ttf';

 // Add some shadow to the text
 imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

  // Add the text
  imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

  // Using imagepng() results in clearer text compared with imagejpeg()
  (A)print ('<div class="test">');
  imagepng($im);
  print ('</div>');
  (B)imagedestroy($im);
  ?>

如果我对行号“A”和“B”进行注释,则代码工作会很精细,并且会在浏览器上生成图像,并在其上写入测试。但我希望图像在div中。所以我取消注释行(A)和(B)但它没有给出正确的输出。生成的html也很奇怪,生成的html是

<img src="http://localhost/php/test92.php" alt="The image “http://localhost/php/test92.php” cannot be displayed, because it contains errors.">

2 个答案:

答案 0 :(得分:3)

基本上,要在HTML中创建动态图像,您将需要2个PHP文件:

  1. 一个用于图像本身
  2. 另一个用于PHP显示它。
  3. 让我们来看看如何做到这一点:

    1. 您创建接受参数的image.php,例如:图片ID或文件名。出于安全原因,您必须过滤它获得的任何参数。

        

      为什么你必须这样做?因为,要生成图像,您不能将其与另一个HTML输出混合。更不用说单个spacereturn,因为这会导致图片损坏。

    2. 您在另一个PHP上执行HTML操作,比如test92.php。这里的HTML逻辑,如:

      1. 获取图像数据
      2. 循环数据
      3. display image =&gt; <img src="image.php?imageID=12" alt="" />

答案 1 :(得分:1)

如果你想在你的图像周围使用div,你必须在html中这样做,你不能在图像生成代码中这样做

<div>
<img src="http://localhost/php/test92.php">
</div>

如果您收到有关图片的错误,请尝试浏览图片网址http://localhost/php/test92.php并查看其外观。

它是否显示出您期待的图像?