2012-06-08 68 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