2011-03-06 100 views
1

下面是我試圖做的。請提醒我相當新的GD22個文件的PHP GD圖像

我想用這種方式製作出2張圖片中的圖片;

填充有圖像A背景矩形無1

後,我要繪製polygon在它填充有另一種圖像。

我現在所擁有的是矩形和背景圖像。

我可以繪製多邊形,但我無法弄清楚如何用另一個圖像填充它。它現在以藍色填充,我想用另一張圖片填充它。

繼承人我的代碼

$values = array(
      40, 50, // Point 1 (x, y) 
      20, 240, // Point 2 (x, y) 
      60, 60, // Point 3 (x, y) 
      240, 20, // Point 4 (x, y) 
      50, 40, // Point 5 (x, y) 
      10, 10 // Point 6 (x, y) 
     ); 

$image2 = imagecreatefromjpeg('test2.jpg'); 
$image = imagecreatefromjpeg('test.jpg'); 

$bg = imagecreatefromjpeg('test.jpg'); 

$fill = imagecolorallocate($image, 0, 0, 255); 

// fill the background 
imagefilledrectangle($image, 0, 0, 249, 249, $bg); 

// draw a polygon 
imagefilledpolygon($image, $values, 6, $fill); 

// flush image 
header('Content-type: image/jpg'); 
imagepng($image); 
imagedestroy($image); 

,你可以看到imagepng()只渲染$image我如何得到它來渲染$形象,$圖像2

感謝所有

+1

您的標題有誤,輸出png圖像時應爲'Content-type:image/png'。 – Czechnology 2011-03-06 15:08:32

+0

是的,但這只是一個測試頁面。它的工作沒有任何頭我給它。我專注於獲取2圖像加載到1 – MadeInDreams 2011-03-06 15:15:14

+0

你應該仍然糾正它。它只有三個字符。 – 2011-03-06 15:29:45

回答

0

我建議你撕裂imagealphablending關閉對於Image2,使用alpha值爲0的顏色在Image2上繪製多邊形的逆。打開imagealphablending。然後你可以通過Image1(背景)複製Image2。

+0

這是否意味着我必須將多邊形自己繪製到圖像中?Cuse我想做的事情不需要您繪製圖像多邊形座標將由用戶通過單擊圖像提供,因此每次都可以改變形狀用戶使用頁面 – MadeInDreams 2011-03-06 15:22:40

+0

如果座標很重要,並且您希望根據座標創建新圖像*,則必須創建它。緩存是另一個故事,你可以保存一個包含座標的文件名,所以一旦創建了圖像,就可以從光盤爲後續請求提供服務。 - 雖然我可能會誤解你的問題。 – vbence 2011-03-06 23:32:26

6

您需要在第一張圖片上疊加第二張圖片。

$file1 = 'test.jpg'; 
$file2 = 'test2.jpg'; 

// First image 
$image = imagecreatefromjpeg($file1); 

// Second image (the overlay) 
$overlay = imagecreatefromjpeg($file2); 

// We need to know the width and height of the overlay 
list($width, $height, $type, $attr) = getimagesize($file2); 

// Apply the overlay 
imagecopy($image, $overlay, 0, 0, 0, 0, $width, $height); 
imagedestroy($overlay); 

// Output the results 
header('Content-type: image/png'); 
imagepng($image); 
imagedestroy($image); 
+0

Haaaa !!這看起來像我在找什麼。謝謝,我喜歡overlay = p – MadeInDreams 2011-03-06 15:28:14

+0

謝謝你。只是學習GD,這對我正在研究的片段有很大的幫助。 – 2012-09-25 12:23:05