2012-04-12 238 views
1

我已經得到了這個形象: original image with white background透明度問題與PNG圖像

我使用PHP5和GD2庫,實現了透明背景,但結果不是我所期望的(你需要一個黑暗的背景看差):transparent background

這裏是我的代碼:

$size = getimagesize($img_url); 
$img = imagecreatefrompng($img_url); 
$im_tc = imagecreatetruecolor($size[0],$size[1]); 
imagecopyresampled($im_tc,$img,0,0,0,0,$size[0],$size[1],$size[0],$size[1]); 
imagedestroy($img); 
$white = imagecolorallocatealpha($im_tc, 255, 255, 255,127); 
imagecolortransparent($im_tc, $white); 
imagepng($im_tc,'image.png'); 

任何幫助,將不勝感激! :)

+0

嘗試用透明度替換白色背景顏色。也許通過一些填充方法讓它連續。 – hakre 2012-05-27 14:26:51

回答

1

您的原始圖像沒有透明背景,但您嘗試通過將所有純白色像素更改爲透明來創建一個。由於文字周圍有陰影/光暈,這些像素不是很白,並且不會變得透明。這裏有幾個選項:

  • 使用圖像編輯器(GIMP,Photoshop等)及其精細選擇工具來執行「背景」的智能選擇,然後將其刪除。至少,Photoshop有非常有用的選項可用於其魔術棒工具來選擇閾值,羽化等等。
  • 選擇更多顏色以使「透明」。除了白色以外,請選擇所有灰色陰影,減去「.gr」設置的精確顏色。這應該使圖像的所有陰影部分都透明,儘管邊緣可能不夠完美(即:不羽毛,略微鋸齒。)
+0

那麼,沒有辦法像使用php一樣使用gimp呢? – mindcast 2012-04-12 15:39:36

+1

這個問題不是PHP--問題在於你的原始圖像背景是固定的,所以它是不可能的 - Photoshop或GIMP將允許你嘗試剪切圖像,但它不會像你一樣好有原始的分層圖像 – Simon 2012-04-12 16:30:59