1

PHPコードで透かしマークを付けようとしていますが、透明なPNGファイルをGIFに入れるまで、すべてうまくいくようです。これが起こる:

ここに画像の説明を入力

そのため、透明な黒い透かしの代わりに、この半固体の緑色のものが上部に表示されます。透かしは ここに画像の説明を入力

次のphpコードを使用します。

    ...
    $image = imagecreatefromgif($filepath);;
    $watermark_image = imagecreatefrompng($wm_filepath);
    imagealphablending($watermark_image, false);
    imagesavealpha($watermark_image, true);
    imagegif($image, $filepath);
    imagedestroy($image);


    imagecopy($image, $watermark_image, $offset['x'], $offset['y'], 0, 0, imagesx($watermark_image), imagesy($watermark_image) );

psを使用してさまざまな設定を組み合わせようとしたことを言及する必要があります

    imagealphablending()
    imagesavealpha() 

そして結果が出ませんでした

更新日:

現在、画像をpngファイルとして保存しています。これら2行を削除imagealphablending($watermark_image, false); imagesavealpha($watermark_image, true);したところ、うまくいきました。ただし、PNGの透明度はGIFと重なっています。imagealphablending($image, true);役に立ちませんでした。何をすればよいでしょうか?

4

1 に答える 1

0

GIF ファイルは 256 色に制限されており、透明として指定された 1 つの色があります。したがって、アンチエイリアスの透明度を設定することはできません。また、あらゆる種類のアンチエイリアスを設定することもできません。

代わりに PNG として保存することをお勧めします。

于 2012-12-21T02:40:21.743 に答える