我用php创建图像
码
$src = array ("22.jpg","33.jpg","44.jpg","55.jpg","66.jpg","77.jpg");
$imgBuf = array ();
foreach ($src as $link)
{
switch(substr ($link,strrpos ($link,".")+1))
{
case 'png':
$iTmp = imagecreatefrompng($link);
break;
case 'gif':
$iTmp = imagecreatefromgif($link);
break;
case 'jpeg':
case 'jpg':
$iTmp = imagecreatefromjpeg($link);
break;
}
array_push ($imgBuf,$iTmp);
}
$iOut = imagecreatetruecolor ("35","210") ;
imagecopy ($iOut,$imgBuf[0],0,0,0,0,imagesx($imgBuf[0]),imagesy($imgBuf[0]));
imagedestroy ($imgBuf[0]);
imagecopy ($iOut,$imgBuf[1],0,35,0,0,imagesx($imgBuf[1]),imagesy($imgBuf[1]));
imagedestroy ($imgBuf[1]);
imagecopy ($iOut,$imgBuf[2],0,70,0,0,imagesx($imgBuf[2]),imagesy($imgBuf[2]));
imagedestroy ($imgBuf[2]);
imagecopy ($iOut,$imgBuf[3],0,105,0,0,imagesx($imgBuf[3]),imagesy($imgBuf[3]));
imagedestroy ($imgBuf[3]);
imagecopy ($iOut,$imgBuf[4],0,140,0,0,imagesx($imgBuf[4]),imagesy($imgBuf[4]));
imagedestroy ($imgBuf[4]);
imagecopy ($iOut,$imgBuf[5],0,175,0,0,imagesx($imgBuf[5]),imagesy($imgBuf[5]));
imagedestroy ($imgBuf[5]);
imagepng($iOut);
//header ( 'Content-type:image/png' );
// save the img to directory
$char='0123456789';
$length=10;
$max_i=strlen($char)-1;
$value='';
for($j=0;$j<$length;$j++)
{
$value.=$char{mt_rand(0,$max_i)};
}
$imageid=$value;
它在页面上给出错误,如
PNG IHDR#“Ouî²CIDATxœíÖ”ŒdÇUðÿ9§êÞþ~™]ïìÇlbc,À†(@dQž @“$ƒ”&LT;°E,XX
Y~ E D¼€"!ÂI’;Q$£°M¼ïzw½_3ÓÓÝ÷Ö×9<ô̬óÄRê§V«Õ·»ÿU]uÏ)JÙ ‚Ì€˜7€wâÕ½«¯^»Óçþå™åfȹ-š© *6›çŸù¹÷ðêðÌ[í‰%üÈ]؆0‡8@@ÙL3¼Än‘×ãÞ«·žxôñ»×69àôú©e?ÊóÙÊx™’W+Ü”˜C1Vö4Üîowq÷zwë?ýI·u§,É~@½™@PF¼Ž'>ô»ÇýÚ‘áÊòêÒh8HëᬠŒ,eïÄ9îK ¡Lº½4ëºÙüÖ7Óä¿ø—Ø–€‡(™€b’ »øعß\K÷o¾ãÌúI&*‚lÙÁR4P£ÄEÕ‰P¢ó!Î}ë:ëEdÄ-gX_.߸òòök¯ûŸúöߣMp~1'ç($àßo½-ÿÀÛï][Z/1Ëlo‡PaÕa#¥›{4Óɘ4—\Š9í%©FË'7ÓÕñÝîƒÅ_h¹@øNþÄû}ðØ?6NsLªêü0ö¡q%ö#fÖ2²Óbð’´¨ªjS¸,¾GE.ì\x~÷ùO>ûØ x
°”*¶ñ±| AAU™NE±Év§Á4X‰¶·OO†小号<½€½Ž£QFècÅcŒ¡OH ²ÝˤϷWS> E>'E $þûòþ:931þkû¸-Z;1Ÿv%ôÐ'c SS&安培;Lûaëgq:ÓI标记•àÃñ`¼:;EŠÉHBL¸ºv&LT;š¤É€†§†Ç¿õ¥¯ŸýÉì ');·¾óÂ7ëÜ' 9H¥H \ C-Çäß¼ùæ%Ýž#μs|áéptU-}±lST°F:£#úãÏ}ù«g?H?Q&lt;÷¥= 5&gt; - »b¢M¹uV †½8»&LT;»úûŸ{OOA€xmïÓ|üÈÚÀ> I} /
我如何解决这个问题
答案 0 :(得分:4)
您所看到的是生成的图像的实际内容。您需要指定内容/类型,否则将假定为text/plain
或text/html
。你的图像似乎是PNG,所以
header("Content-type: image/png")
应该足够了。我可以看到这条线被注释掉 - 但它需要被包括在内。但需要注意的是:它需要在之前输出实际图像数据,因此您需要将其移动到脚本的顶部(或至少高于imagephp
调用)。
编辑:如果要将生成的图像保存到文件而不是将其输出到浏览器,则需要将第二个参数传递给imagepng
函数:
imagepng($iOut, $myfilename)
有关详细信息,请参阅Imagephp documentation
编辑2:如果您需要将创建的图像的内容用于其他地方,您可以使用此技巧:
ob_start();
imagephp($iOut);
$image_data = ob_get_clean();
现在,您将结果图像数据放在变量中,然后您可以继续使用脚本。