これは私の心を吹き飛ばしています。2つの透過PNGをマージしたい。
1 つは、正方形の画像からオンザフライで生成された円 ($source) です。2 番目はマップ マーカー ($marker) で、最初のマーカーの後ろに収まるように透明な円が表示されます。
imagepng($ソース); および imagepng($marker); 期待どおりに出力されます。透明な背景。
次に、マーカーのサイズの空の透明な画像を作成して、両方を一緒に配置します。
//NEW BLANK TRANSPARENT IMAGE
$dest = imagecreatetruecolor(50, 61);
$transparent = imagecolorallocatealpha($dest, 0, 0, 0, 127);
imagefill($dest, 0, 0, $transparent);
imagealphablending($dest, true);
imagesavealpha($dest,true);
//COPY THE CIRCLE
imagecopy($dest, $source, 5, 5, 0, 0, 41, 41);
//AND THE MARKER ON TOP
imagecopy($dest, $marker, 0, 0, 0, 0, 50, 61);
その結果、円は、円が内側にある黒い四角形として表示されます。$source と $dest の両方で imagealphablending と imagesavealpha の多くの組み合わせを試しましたが、何もうまくいかないようです。
黒い四角を削除して、結果の $source をマージ前と同じように透明のままにするにはどうすればよいですか?