2012-06-12 77 views
1

我使用的是創建圖像功能使用下面的代碼使用圖像創建功能

<?PHP 
header ("Content-type: image/gif"); 
$image=imagecreatefromgif("myimage.gif"); // will be background img 
$black = imagecolorallocate($image, 0,0,0); 
$message = "Hello Egypt"; 
imagestring($image, 4, 25, 10, $message, $black); 
imagegif($image); 
imagedestroy($image); 
?> 

輸出應該是這樣的

Hello Egypt

我們創建一個確切的文本消息的圖像我的問題有沒有什麼辦法,我可以寫它的形象不僅文本 ,這樣,如果我已經標記圖像在相同的路徑(flag.gifFlag)我想只是我$message後把它寫是這樣

Hello Egypt Flag

所以這是可能的,怎麼可能! 〜感謝很多

更新 基於使用imagecopy功能

<?PHP 
header ("Content-type: image/gif"); 
$image=imagecreatefromgif("myimage.gif"); // will be background img 


$src = imagecreatefromjpeg('flag.jpg');// new image will add 
imagecopy($image, $src, 120, 10, 0, 0, 32, 20); 

$black = imagecolorallocate($image, 0,0,0); 
$message = "Hello Egypt"; 
imagestring($image, 4, 25, 10, $message, $black); 

imagegif($image); 
imagedestroy($image); 
?> 

輸出@MarcB想法是不正確的顏色爲什麼:(

enter image description here

這方面有任何幫助新問題〜謝謝

+2

http://php.net/imagecopy –

+0

感謝從來不知道imagecopy之前,但我會盡力結合這兩個代碼希望它的作品〜非常感謝 –

+0

@MarcB我更新了代碼,請查看它!爲什麼我得到它不是真正的顏色! –

回答

4

隨着Surreal DreamsMarc B 這一個正常工作

<?PHP 
header ("Content-type: image/gif"); 

$image=imagecreatefromjpeg("myimage.jpg"); // will be background img 

$src = imagecreatefromjpeg('flag.jpg');// new image will add 

imagecopy($image, $src, 120, 10, 0, 0, 32, 20); 


$black = imagecolorallocate($image, 0,0,0); 
$message = "Hello Egypt"; 

imagestring($image, 4, 25, 10, $message, $black); 
imagegif($image); 
imagedestroy($image); 
?> 

輸出

enter image description here

我已經應該已經學會了以下功能

  1. imagecopy
  2. imagecreatefromjpeg
  3. imagecreatefromgif
+0

如果這是解決方案,請不要忘記接受它。只要它是最好的解決方案,就可以接受自己的解決方案。 –

1

imagecopy的()應該適當deal with differences between images' palettes;但是,GIF格式不支持超過256種顏色,並且GD在與基於調色板的圖像協同工作時也不支持。如果GD嘗試使用新顏色時已經存在256個調色板條目,則GD將選擇最接近的匹配項,這會產生您看到的結果。

爲避免此問題,您應該使用imagecreatetruecolor()在內存中創建一個24位真彩色圖像。然後,您可以使用imagecopy()插入每個GIF圖像(包括背景)和imagepng()以生成PNG輸出,這比JPEG更適合藝術線條,提供比GIF更好的壓縮,並且可以支持超過256種顏色。