2012-06-08 70 views
-1

我创建的图像用PHP创建图像如何在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=''; 
       $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,广告†(@ DQZ @ “$ƒ” < Y~ E D¼€"!ÂI’;Q$£°M¼ïzw½_3ÓÓÝ÷Ö×9<ô̬óÄRê§V«Õ·»ÿU]uÏ)JÙ ‚Ì€˜7€wâÕ½«¯^»Óçþå™åfȹ-š© *6›çŸù¹÷ðêðÌ[í‰%üÈ]؆0‡[email protected]@ÙL3¼Än‘×ãÞ«·žxôñ»×69àôú©e?ÊóÙÊx™’W+Ü”˜C1Vö4Üîowq÷zwë?ýI·u§,É[email protected]½™@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 E,XX°°“*¶ñ±| AAU™NEÉv§Á4X±‰¶·OO†小号<½€½Ž£QFècÅcŒ¡OH ²ÝˤϷWS > E>“为$þûòþ:931þkû¸-Z;1Ÿv%ôÐ'c SS &Lûaëgq:O> I•àÃñ`¼:;EŠÉHBL¸ºv<š¤É€†§†¥Ç¿õ¯ŸýÉì ? ');·¾óÂ7EU' 第九¥ħ\ C-Çäß¼ùæ%YZ#微秒|áéptU-}±LST°F:£#UA£I}中的“G为Q <÷¥= 5> - 信息»b¢ M¹uV †½8 “<” uuy {OOAxmïÓ€|üÈÚÀ> I}/

我怎么能解决这个

+4

这是不是一个错误,这是* *的图像数据。 – deceze

回答

4

你看到的是系统产生图像的实际内容。你需要指定内容/类型,否则会被认为是text/plaintext/html。您的图片似乎是PNG,他

header("Content-type: image/png") 

应该足够了。我可以看到这一行注释掉 - 但它需要被包括在内。一注虽然:它需要实际的图像数据之前去输出,所以你需要将它移动到你的脚本的顶部(或至少高于imagephp调用)。

编辑:如果你想生成的图像保存到一个文件,而不是将其输出到浏览器,那么你需要的第二个参数传递给imagepng功能:

imagepng($iOut, $myfilename) 

更多见Imagephp documentation详情

编辑2:如果你需要得到所创建图像的内容在其他地方使用,你可以使用这一招:

ob_start(); 
imagephp($iOut); 
$image_data = ob_get_clean(); 

现在,你有变量所产生的图像数据,你可以用你的脚本继续。

+0

但是当它包括页面。而我不需要该网页上显示图像的图像显示。 – mohit

+1

那你想干什么? –

+0

我必须要显示我的网页没有图像。 – mohit