1
我正在嘗試爲網站創建自定義橫幅頭像。下圖顯示了需要採取什麼措施:PHP GD,全綵色透明PNG ontop JPG
正如你所看到的,我有一個半透明PNG,用戶提供的圖像,我想提出的第三圖像。
,我至今寫的代碼是:
$user_id = 1;
$name_qry = mysql_query("SELECT a.*, b.* FROM mbr_user_name a, mbr_user_information b WHERE a.user_id = '$user_id' AND b.user_id = '$user_id'");
while($row = mysql_fetch_array($name_qry)){
$user_name = $row['user_name'];
$user_email = $row['user_email'];
$user_avatar = $row['user_avatar'];
}
$height = "208";
$width = "199";
$top_image = "../images/bannerShadow_cccccb.png";
$image = imagecreatefrompng("." . $user_avatar);
$banner = imagecreatefrompng($top_image);
//Keeping the Banner Trasnparent
$transBanner = imagecreate($width, $height);
$color = imagecolorallocatealpha($transBanner, 0, 0, 0, 127);
imagefill($transBanner, 0, 0, $color);
imagecopyresampled($transBanner, $banner, 0, 0, 0, 0, $width, $height, $width, $height);
imagealphablending($transBanner, true);
imagecopymerge($image, $transBanner, 0, 0, 0, 0, 199, 208, 100);
imagepng($image);
它輸出的東西像什麼如下所示:
我顯然還必須使用戶提供的圖像正確的大小,這是一個簡單的數學問題 - 現在,我必須使透明度保持透明!
如果我冒了出來:
imagealphablending($transBanner, true);
imagecopymerge($image, $transBanner, 0, 0, 0, 0, 199, 208, 100);
最後一行更改爲imagepng($transBanner);
,透明PNG將保持透明!但一旦我嘗試把兩者結合起來,這使得透明度完美的黑色。
有什麼建議嗎?
我認爲[wideimage](http://wideimage.sourceforge.net/)已經有了這個,無論是'merge'還是'mask',都可以看到這個demo:http://wideimage.sourceforge.net/wp-content /current/demo/index.php?demo=merge&output=preset%20for%20demo&colors=255&dither=1&match_palette=1 - 您也可以使用它調整大小。 – hakre
謝謝,雖然 - 我已經可以在它上面加水印了。寬幅圖像在做什麼,是採取100%不透明的圖像,然後做我正在做的50%不透明度。另外,我需要爲我在本網站上擁有的每個用戶執行此操作。 – ntgCleaner
您可以使用wideimage和許多參數進行配置。你可以做一次或者多次。 – hakre