私はウェブサイトのためのカスタム見栄えのバナーのアバターを作成しようとしています。以下のイメージは、何が起こる必要があるかを示しています。

ご覧のとおり、私は半透明のPNGを持っています。ユーザーが提供した画像です.3番目の画像を作りたいと思います。
これまでに書いたコードは次のとおりです。
$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);
それは以下のようなものを出力します:

I obviously still have to make the user provided image the right size, That is a simple math problem - Right now, I have to make the transparency stay transparent!
私が取る場合:
imagealphablending($transBanner, true);
imagecopymerge($image, $transBanner, 0, 0, 0, 0, 199, 208, 100);
最後の行を imagepng($ transBanner);
に変更すると、透明なPNGは透明なままになりますが、2つをまとめると完全な黒色になります。
助言がありますか?