2013-04-13 49 views
1

希望大家都做得很好。使用PHP GD生成的圖像 - 如何對齊瀏覽器的中心?

我有一個圖像使用PHP GD創建和編輯,我用下面的代碼發送到瀏覽器,但它顯示完全對齊瀏覽器的左側,我試圖直接添加css行爲到img標籤,但沒有發生任何事情,所以我想這將永遠不會工作,因爲它是一個PHP頭顯示圖像,有沒有什麼辦法在相同的代碼中將圖像與瀏覽器的中心對齊可以說使用邊緣對齊div的方式0自動?正如你所看到的,我仍然GD一個新手,所以這裏是我的代碼,我真的很感激的好朋友:

<?php 
$nombre=$_POST['nombre']; 
    //Set the Content Type 
header('Content-type: image/jpeg'); 


    // Create Image From Existing File 
    $jpg_image = imagecreatefromjpeg('fabian.jpg'); 
     // get image dimensions 
list($img_width, $img_height,,) = getimagesize("fabian.jpg"); 

    // Allocate A Color For The Text 
    $white = imagecolorallocate($jpg_image, 255, 255, 255); 

    // Set Path to Font File 
    $font_path = 'fabian.TTF'; 

    // Set Text to Be Printed On Image 
    $text =strtoupper($nombre); 

    // Print Text On Image 
    //imagettftext($jpg_image, 75, 0, 50, 400, $white, $font_path, $text); 

// find font-size for $txt_width = 80% of $img_width... 
$font_size = 1; 
$txt_max_width = intval(0.8 * $img_width);  

do { 

$font_size++; 
$p = imagettfbbox($font_size,0,$font_path,$text); 
$txt_width=$p[2]-$p[0]; 
// $txt_height=$p[1]-$p[7]; // just in case you need it 

} while ($txt_width <= $txt_max_width); 

// now center text... 
$y = $img_height * 0.9 ;// baseline of text at 90% of $img_height 
$x = ($img_width - $txt_width)/2; 

imagettftext($jpg_image, $font_size, 0, $x, $y, $white, $font_path, $text); 



    // Send Image to Browser 
    imagepng($jpg_image); 


// Clear Memory 
    imagedestroy($jpg_image); 

?> 

非常感謝您的諮詢!祝你有美好的一天。

+3

你不能這樣對圖像本身作爲PHP沒有辦法知道瀏覽器的尺寸正確中心的方式,您需要使用HTML來顯示圖像,然後使用CSS來居中。 –

+0

明白了,謝謝神祕的我會找到顯示體內圖像的方式,然後我就從那裏用CSS,我想我需要保存臨時再檢索該文件。謝謝! –

回答

3

它看起來像你只是在輸出您提供的代碼的圖像文件。在此代碼中無法指定任何瀏覽器應如何顯示圖像。

如果有一個獨立的HTML代碼的地方,顯示此圖像,您應該指定有關外觀和定位有什麼。因此,它變成了一個HTML/CSS問題,關於如何將圖像置中並且與PHP或GD沒有任何關係。

+0

非常感謝pilsetnieks,知道,並根據上面輸入的意見,我想我現在明白了,現在我有一個想法。再次感謝朋友。 –

1

您將需要添加display: block;你的CSS規則,讓它集中。

然而,如果你只是要求在瀏覽器中的圖像,那麼就沒有真正變通的辦法,因爲你需要知道的瀏覽器窗口的尺寸,這是不可用的服務器端。

+0

感謝亞當,這就是我的想法;將在一段時間內找到最佳的方式來檢索圖像,而不是在瀏覽器中請求圖像。 –