これは何度も取り上げられていることは知っていますが、さまざまなスクリプトを試して、持っているスクリプトを変更し続けていますが、PNG-24 watermark.png を親画像の上に透明にすることはできません。
これは私が現在持っているものです:
<?
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatefromjpeg($imageURL);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$size = getimagesize($imageURL);
imagealphablending($image, false);
imagesavealpha($image, true);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
?>
別のSOの質問を読んだところですが、回答の1つは、次の2行を追加しないと透明にならないとアドバイスしています。
imagealphablending($image, false);
imagesavealpha($image, true);
私はそれらを追加しましたが、まだ追加していません。代わりにヘッダーと出力を PNG に設定しようとしましたが、まだ運がありません。透かしをブラウザ(生)にロードしましたが、それは間違いなく透明ですが、画像にはありません。確かにこれは難しいことではありませんか?私が間違っていることはありますか?