2013-09-01 44 views
1

当试图绘制一个简单的多边形时,会发生奇怪的输出。imagepolygon - 生成奇怪的输出

<?php 
// cria uma imagem em branco 
$image = imagecreate(400, 300); 

// prenche a cor do fundo 
$bg = imagecolorallocate($image, 0, 0, 0); 

// escolhe uma cor para o poligono 
$col_poly = imagecolorallocate($image, 255, 255, 255); 

// desenha o poligono 
imagepolygon($image, 
      array (
        0, 0, 
        100, 200, 
        300, 200 
      ), 
      3, 
      $col_poly); 

// envia a imagem 
header("Content-type: image/png"); 
imagepng($image); 

?> 

输出是:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/drawimage/index.php:2) in /var/www/drawimage/index.php on line 23 

应该是什么画面看起来像这样:

‰PNG IHDR,×ywPLTEÿÿÿ¥ÙŸÝ1IDAThí•;ŽÜ0D5ë¡À€Ç™C±¡à#è(<åÌýùivWeX»+‘P"úa§8ÑYxä7üä‘<ò-ÒÈKhdþÅ#3¦Ä#EÓwy²È?ñÈû‡ŒðÊÈôb‘0}á‘yMH#ïÏáò~V™yû¥òžV™ç:g\Ö+N<8dmE*³"¬2qšXeâñGD&ú¿ÌŠÊ„÷©ÌŠÊ¬¥He¶ï ÙFŸSf¾p¶iá”ÙN™ý‚Ù;QÊì§L\œ21{‚‘í¹ð¥LØž”2;B)³W¢”9¾Bä|F™¹xA9f…Qæ@eÎëM<pälD(s"Œ2q1ÊÄê DŽ÷Â#„2áxÊœ¡ÌYˆPæú‘kìqeæfáæš\™Á•¹/7ñ[email protected]‘»¬ÌàÊÄs+••¹VÀÊ„k+s#°2wX™ìD²¡G•™Õ¥™lNPe2U&¿ÚÄ#Cò6 29‚*ï%ªLì¬H¶^xT&dkP™•ÉË€ÊýBŠ‘Ç”™»›nŠ)Á”)L™òb)»@Ê”¦LÌ7˜2ÑØu"ÅnáH™Pì eJR¦¬)Sµ©Qf6·jªA”©D™úZ©›ÊÔ¢L,·ˆ2ÑÙ+‘j¿ð L¨ö€25(S”iº‹‹4ãî+Ó ¾2Í„øÊ4ˆ¯L{©‰G‚‡´=\eZÄW&Ö¾2 â+#ÍÉÂ#®2¡9q•iW™¶†«ŒÒ\DvOñ”QæÃSFA 

发生了什么?

+0

[Headers already already sent by PHP]可能的重复(http://stackoverflow.com/questions/8028957/headers-already-sent-by-php) –

+1

它看起来更像是gd-libary不可用。你确定你已经安装了Hedron? –

+0

好吧,那一定是吧。现在,我如何安装gd-library? –

回答

0

问题解决, 你可以看到解释here标题与imagepng($ image)冲突;

固定代码:

<?php 
header("Content-type: image/png"); 
// cria uma imagem em branco 
$image = imagecreate(400, 300); 

// prenche a cor do fundo 
$bg = imagecolorallocate($image, 0, 0, 0); 

// escolhe uma cor para o poligono 
$col_poly = imagecolorallocate($image, 255, 255, 255); 

// desenha o poligono 
imagepolygon($image, 
      array (
        0, 0, 
        100, 200, 
        300, 200 
      ), 
      3, 
      $col_poly); 

// put the image out 
imagepng($image); 

?> 

只是改变了报头的位置。