2011-10-14 53 views
2

我正在使用此代碼來創建具有透明背景的文字。在透明背景圖像中的字母邊框是不需要的?

<?php 
// Set the content-type 
header('Content-Type: image/gif'); 

// Create the image 
$im = imagecreatetruecolor(400, 150); 

// Create some colors 

$black = imagecolorallocate($im, 0, 0, 0); 
$acolor = imagecolorallocate($im, 153, 204, 153); 
imagecolortransparent($im, $black); 

// The text to draw 
$text = 'Testing...'; 
// Replace path by your own font path 
$font = 'arial.ttf'; 

// Add the text 
imagettftext($im, 50, 0, 10, 100, $acolor, $font, $text); 

// Using imagegif() 
imagegif($im,"img.gif"); 
imagedestroy($im); 
?> 

但是這是寫在img.gif文本對字母的邊框一些不需要的顏色(黑色)( 'E,S,N,G')。我怎樣才能完成該顏色啊生成的圖像是
Arial字體下載網站是http://code.google.com/p/ireader/downloads/detail?name=arial.ttf

+0

不完全清楚你的意思:你能提供一個示例圖形來展示問題嗎?另外,我不確定你在這裏要做什麼,但是如果你正在使用這些圖形在你的網站上顯示文本,那麼使用HTML/CSS而不使用圖形可能會更好地實現它。但這取決於你想要做什麼。 – Spudley

+0

@Spudley這個代碼輸出這個圖像寫在'測試'它http://imageshack.us/photo/my-images/851/imgsi.png/在字母'e','s','n'和'g '邊框上沒有黑色,所以我不想要邊框 –

+0

我的第二點:如果你所做的只是創建圖形,這樣你就可以在不同尋常的字體中使用文本,你可以在純HTML/CSS中做到這一點,即使使用特殊字體,使用CSS'@ font-face'。適用於所有瀏覽器。有關詳細信息,請參閱http://randsco.com/index.php/2009/07/04/p680和http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/。 – Spudley

回答

2

GIF格式無法處理alpha透明度。它可以只有100%透明(=不可見)或100%不透明(=可見)像素。

您的文字似乎具有反鋸齒,柔和的邊緣。

那些邊緣不是100%透明的,但它們也不是100%不透明的 - 它們是前景和背景的混合物。這使他們看起來更柔和。

由於GIF格式無法處理這些細微差別,因此該庫使用綠色和黑色的混合來模擬「較弱」的綠色。

如果您使用PNG格式,問題應該消失:PNG支持alpha透明度。如果您仍然需要支持IE6,則需要查看一些問題,但對於其他任何瀏覽器,這都可以馬上使用。

+0

你是對的,我解決了它使用PNG兩天前謝謝謝謝。 –