私はウェブサイトのためのカスタム見栄えのバナーのアバターを作成しようとしています。下の画像は発生する必要があるかを示しています。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は透明のままになります!私は2つを配置しようと、それは透明性の完璧な黒の色になり。
提案がありますか?
私は[ワイドイメージ](http://wideimage.sourceforge.net/)にこれが既にあると思います、 'merge'か' mask'のどちらか、デモを見てください: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と多くのパラメータで設定できます。そして、あなたはそれを1回でも多くでもやり遂げることができます。 – hakre