imagelayereffect

アルファブレンディングフラグを設定し、レイヤ効果を使用する

説明

bool imagelayereffect(GdImage $image, int $effect)

アルファブレンディングフラグを設定し、レイヤ効果を使用します。

パラメータ

image

imagecreatetruecolorのような画像作成関数が返す GdImage オブジェクト。

effect

以下の定数のいずれか。

IMG_EFFECT_REPLACE
ピクセルの置換を使用します (imagealphablendingtrue を渡すのと同じです)。
IMG_EFFECT_ALPHABLEND
通常のピクセルブレンディングを使用します (imagealphablendingfalse を渡すのと同じです)。
IMG_EFFECT_NORMAL
IMG_EFFECT_ALPHABLEND と同じです。
IMG_EFFECT_OVERLAY
オーバーレイを使用すると、背景の黒い部分は黒のまま。 一方背景の白い部分は白のままとなります。 背景のグレーな部分は、前景のピクセルの色となります。
IMG_EFFECT_MULTIPLY
多重効果を使ったオーバーレイを使用します。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。
7.2.0 IMG_EFFECT_MULTIPLY が追加されました (システムの libgd が 2.1.1 以降であるか、バンドルされている libgd を使う必要があります)。

例1 imagelayereffect の例

<?php
// 画像を準備します
$im = imagecreatetruecolor(100, 100);

// 背景を設定します
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// オーバーレイアルファブレンディングフラグを適用します
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// 2 つのグレーの楕円を描画します
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// 出力します
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

上の例の出力は、 たとえば以下のようになります。

出力例 : imagelayereffect()