アプリ版:「スタンプのみでお礼する」機能のリリースについて

半透明の画像(全てのピクセルの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);

A 回答 (1件)

http://www.php.net/manual/ja/function.imagecolor …

imagecolortransparent関数を使うと、透明色を定義できるので、$bgの色インデックスを透明に定義すればよいのではないでしょうか。
    • good
    • 0
この回答へのお礼

返信遅くなりすみません
いろいろ試したのですが、結果としてできませんでした。

新しいソースは下記です。

$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);

お礼日時:2010/02/17 17:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!