2014-05-22 112 views
0

嘿傢伙我一直在PHP做一些代碼..但它不給我,我預計..The代碼在PHP居中圖像與GD庫

HTML代碼

<html> 
    <body> 
     <form action="images.php" method="post"> 
      Enter image Name :<input type="text" name="imagename"> 
      <br></br> 
      <input type="submit" name="sumbit"> 
      <br></br> 
     </form> 
    </body> 
</html> 

輸出在這個網站碼用戶allowded輸入他的名字,使得根據所述名字生成的圖像..

PHP代碼

<?php 
    $name = $_POST['imagename']; 
    if($_POST['imagename'] != ''){ 
     header("Content-Type: image/png"); 
     $name = $_POST['imagename']; 
     $im = @imagecreate(800,600); 
     $background_color = imagecolorallocate($im, 0xFF, 0xCC, 0xDD); 
     $text_color = imagecolorallocate($im, 133, 14, 91); 
     imagestring($im, 5, 300, 300, "$name", $text_color); 
     imagepng($im); 
     imagedestroy($im); 
    } 
    else echo "no image created"; 
?> 

此php代碼生成圖像accrding給出的名稱..

圖像生成這段代碼罰款,但我需要的是,所創建的圖像必須出現在瀏覽器的中心...我已經嘗試過的HTML file..but它沒有工作使用<img src="file.php> ..

這將是真正有用的,如果你們找我solution..Thanks提前

+0

您應該將圖像內容居中放在封閉的圖像矩形中,即圖像周圍的框 – higuaro

+0

did not get you ..可以更準確地告訴 – user3664696

回答

0

Here,你會發現的例子如何將文本置於手工製作的圖像中。援引該頁面,你應該做的:

<?php 
    $fw = imagefontwidth(5);  // width of a character 
    $l = strlen("$name");  // number of characters 
    $tw = $l * $fw;    // text width 
    $iw = imagesx($im);   // image width, 800 for your case 

    $xpos = ($iw - $tw)/2; 
    $ypos = 10; 
    imagestring ($im, 5, $xpos, $ypos, "$name", $color); 

    //... 
?> 
+0

它仍然出現在邊上 – user3664696

+0

在圖像周圍繪製邊框,或者在我的html文件上做' higuaro

+0

? – user3664696

1

如果要居中在瀏覽器中你的形象,你需要HTML和CSS。

我建議您不要直接使用header("Content-Type: image/png");來顯示圖像,而是將圖像保存到文件中。

然後你的腳本可以輸出html並將圖像包含在圖像標籤中或作爲背景圖像。該圖像可以使用css輕鬆地在瀏覽器中居中。

+1

正確。每次頁面加載時,服務器都需要通過PHP來渲染圖像。保存文件可以減少服務器上的壓力。這是在您思考時緩存內容的一種方式。 – JakeGould