私は現在画像にウォーターマークを追加するためのスクリプトを書いています。前記透かしはその不透明度が異なる。 たとえば、ベースウォーターマークイメージは、完全に表示可能なテキストと透明な背景を持つPNGです。追加すると、私はこのベースPNGを消して、私のニーズに合わせて不透明な透かしを作ることができます。これを行うにはPHP:imagefilter()で不透明度を追加すると既に透明な領域が黒く塗りつぶされています
は、私はPNGをフェードするimagefilter()
を使用します。
$opacity = 0.25;
$watermarkRes = imagecreatefrompng($filename);
imagealphablending($watermarkRes, false);
imagesavealpha($watermarkRes, true);
$transparency = 1 - $opacity;
imagefilter(
$watermarkRes,
IMG_FILTER_COLORIZE,
0,
0,
0,
127*$transparency
);
imagepng($watermarkRes, $filename);
すべての非透過領域がきれいに色あせますが、既存のtransarent領域が黒くなっます。
これは、上記のコードの結果です:
:所望の結果は、このする必要がありますがhttps://preview.ibb.co/mLvKPF/15027295625991d55a1ef081_42502547.jpg
:それはこのようになります透かしとして使用
https://preview.ibb.co/j8zePF/TEST.png
https://preview.ibb.co/f81R4F/TEST_15027295625991d55a1ef081_42502547.jpg
透過領域をそのまま維持しながら、テキストに不透明度を追加するにはどうすればよいですか?