• 締切済み

PHPで半透明画像を作りたい

半透明の画像(全てのピクセルのalphaが50の画像)を作りたいのですがうまくいきません。 元画像を$imとして、透明の背景($bg)を作成し、その上に alpha=50でコピーすれば、半透明になるか・・・と思ったのですが、 黒っぽい画像になってしまいます。 ($bgが透明ではなく、黒画像になっているようです。) 半透明の画像を作りたいときは、どのようにすれば作成できますでしょうか? $bg = imagecreatetruecolor(100, 100); imagefill($bg,0,0,imagecolorallocatealpha($bg,0,0,0,127)); imagecopymerge($bg, $im, 0, 0, 0, 0, 100, 100, 50); imagealphablending($bg, false); imagesavealpha($bg, true); header('Content-type: image/png'); imagepng($bg);

みんなの回答

回答No.1

http://www.php.net/manual/ja/function.imagecolortransparent.php imagecolortransparent関数を使うと、透明色を定義できるので、$bgの色インデックスを透明に定義すればよいのではないでしょうか。

asgdhtjjtr
質問者

お礼

返信遅くなりすみません いろいろ試したのですが、結果としてできませんでした。 新しいソースは下記です。 $bg = imagecreatetruecolor(100, 100); $trans = imagecolorallocate($bg,0,0,0); imagefill($bg,0,0,$trans); imagecolortransparent($bg, $trans); imagecopymerge($bg, $im, 0, 0, 0, 0, 100, 100, 50); imagealphablending($bg, false); imagesavealpha($bg, true); header('Content-type: image/png'); imagepng($bg);

関連するQ&A