PNG 24bitの透過部分が、PHPで合成するとなぜか透過部分が無効となる。
imagealphablending($image, false);
imagesavealpha($image, true);
$color = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $color);
を試すが、解決しなかった。うーん。
>追記
合成の背景が8bitだったのでできなかっただけ。
背景も24bitにすることで解決。
ただ背景24bitで合成画像8bitはできたので、逆もできるような気もする。また後日・・・・。
>追記
文字を合成したときに、色が再現されない問題が。
imagecreate()をimagecreatetruecolor() に変更することで問題は一応解決。
本家PHPマニュアルにも
「imagecreatetruecolor() を使うことを推奨します。」と書かれている。
imagecolorallocate() をコールしたときにimagecreate()でセットした背景色がセットされるらしいが、その時にimagecreate()だと上手くいかないらしい。
PHPのバージョンによっては使えないので要注意。
詳しくは本家PHPマニュアルへ
http://www.php.net/manual/ja/function.imagecreate.php