2013-07-12 209 views
0

我正在嘗試在圖像中添加一些文本,並在不同大小的php中使用gd顯示它。我知道如何顯示1張圖片。這裏是代碼。顯示多種尺寸的圖像

<?php 
if (!isset($_FILES['image']['tmp_name'])) { 
} 

else{ 
$file=$_FILES['image']['tmp_name']; 
$img_src = imagecreatefromstring(file_get_contents($file)); 
$img_dest = imagecreatetruecolor(100, 100); 
$src_width = imagesx($img_src); 
$src_height = imagesy($img_src); 
imagecopyresized($img_dest, $img_src, 0, 0, 0, 0, 100, 100, $src_width, $src_height); 

$text = $_POST['text']; 
$font_path = 'arial.TTF'; 
$black = imagecolorallocate($img_dest, 0, 0, 0); 
imagettftext($img_dest, 25, 0, 302, 62, $grey, $font_path, $text); 
imagettftext($img_dest, 20, 0, 10, 20, $black, $font_path, $text); 
header("Content-type: image/png"); 
imagepng($img_dest); 
imagedestroy($img_dest); 
imagedestroy($img_src); 
} 
?> 

但我怎麼在同一個頁面,相同的圖像,但在不同大小顯示超過1

請電話我如何做到這一點。

回答

1

您需要爲自己創建每個圖像。像你那樣修改圖像是不可能的,因爲你將圖像作爲對象返回。

如果您有寫入web服務器的權限,您可以保存其他生成的圖像,例如

$src_w = 100; 
$src_h = 100; 

$img_50perc = imagecreatetruecolor($src_w/2, $src_h/2); 
imagecopyresized($img_50perc, $img_dest, 0, 0, 0, 0, $src_w/2, $src_h/2, $src_w, $src_h); 

$img_25perc = imagecreatetruecolor($src_w/4, $src_h/4); 
imagecopyresized($img_25perc, $img_dest, 0, 0, 0, 0, $src_w/4, $src_h/4, $src_w, $src_h); 

,然後你可以保存圖片:

imagepng($img_dest, 'dest_folder/myfile_100perc.png'); 
imagepng($img_50perc, 'dest_folder/myfile_50perc.png'); 
imagepng($img_25perc, 'dest_folder/myfile_25perc.png'); 

您可以創建的PHP頁面,您可以從這些文件名創建的過程中創建的圖像動態IMG-標籤

echo '100 Percent of size: <img src="dest_folder/myfile_100perc" />'; 
echo '50 Percent of size: <img src="dest_folder/myfile_50perc" />'; 
echo '25 Percent of size: <img src="dest_folder/myfile_25perc" />'; 

另一種方法是創建每個圖像,並通過賦予php腳本的參數來調整大小。

100%: <img src="myImageResizer.php?faktor=1" /> 
50%: <img src="myImageResizer.php?faktor=2" /> 
25%: <img src="myImageResizer.php?faktor=4" /> 

,然後通過該給定FAKTOR計算DEST尺寸

$faktor = $_GET['faktor']; 
if (!$faktor || !is_numeric($faktor)) $faktor = 1; 
$src_w = 100/$faktor; 
$src_h = 100/$faktor;