PHPのimagelayereffect()関数でレイヤー効果用のアルファブレンディングフラグを設定する方法
imagelayereffect()は、PHPに組み込まれている画像処理関数の一つで、レイヤー効果(重ね合わせ効果)を使用するためのアルファブレンディングフラグを設定します。処理に成功した場合はtrue、失敗した場合はfalseを返します。この関数を利用するには、あらかじめPHP環境にGD拡張モジュールがインストールされている必要があります。
構文
bool imagelayereffect($image, $effect)
パラメータ
imagelayereffect()関数は、以下の2つのパラメータを受け取ります。
$image − imagecreatetruecolor()などの画像生成関数が返す画像リソース(GdImageオブジェクト)です。描画対象となる画像のサイズをここで定義します。
$effect − ブレンディングフラグの値を設定するためのパラメータです。後述のエフェクト定数のいずれかを指定します。
IMG_EFFECT_REPLACE − ピクセルの置き換えを行います。下層のピクセルとブレンドせず、描画内容でそのまま上書きします。
IMG_EFFECT_ALPHABLEND − 通常のピクセルブレンディングを行います。透明度を考慮しながらピクセルを合成します。
IMG_EFFECT_NORMAL − IMG_EFFECT_ALPHABLENDと同じ効果を持つ定数です。
IMG_EFFECT_OVERLAY − オーバーレイ効果を適用します。背景が白のピクセルは白のまま、黒のピクセルは黒のまま維持され、グレーのピクセルには前景色が反映されます。
IMG_EFFECT_MULTIPLY − 乗算(multiply)効果を設定します。色を重ねるほど暗くなる合成方法です。
戻り値
imagelayereffect()は、フラグの設定に成功した場合にtrueを、失敗した場合にfalseを返します。
使用例1:オーバーレイ効果を適用する
<?php
// imagecreatetruecolor()関数で画像を作成
$img = imagecreatetruecolor(700, 300);
// 背景色を設定
imagefilledrectangle($img, 0, 0, 150, 150, imagecolorallocate($img, 122, 122, 122));
// オーバーレイ用のアルファブレンディングフラグを適用
imagelayereffect($img, IMG_EFFECT_OVERLAY);
// 楕円を描画
imagefilledellipse($img, 50, 50, 40, 40, imagecolorallocate($img, 100, 255, 100));
imagefilledellipse($img, 50, 50, 50, 80, imagecolorallocate($img, 100, 100, 255));
imagefilledellipse($img, 50, 50, 80, 50, imagecolorallocate($img, 255, 0, 0));
// 画像を出力
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
?>
出力

使用例2:置き換え効果を適用する
<?php
// imagecreatetruecolor()関数で画像を作成
$img = imagecreatetruecolor(700, 200);
// 背景色を設定
imagefilledrectangle($img, 0, 0, 200, 200, imagecolorallocate($img, 122, 122, 122));
// 置き換え用のアルファブレンディングフラグを適用
imagelayereffect($img, IMG_EFFECT_REPLACE);
// 楕円を描画
imagefilledellipse($img, 100, 100, 160, 160, imagecolorallocate($img, 0, 0, 0));
imagefilledellipse($img, 100, 100, 140, 140, imagecolorallocate($img, 0, 0, 255));
imagefilledellipse($img, 100, 100, 100, 100, imagecolorallocate($img, 255, 0, 0));
// 画像を出力
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
?>
出力

使用時の注意点
この関数はGDライブラリに依存するため、サーバー環境でGD拡張モジュールが有効になっているか事前に確認してください。
画像を直接ブラウザに出力する場合は、imagepng()などを呼び出す前にheader()でContent-Typeを指定する必要があります。
使い終わった画像リソースはimagedestroy()で破棄し、メモリを解放することを推奨します。
-
PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法
imagecrop()関数とはimagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。構文resource imagecrop ($image, $rect)パラメータimagecrop()は、$imageと$rectの2つのパラメータを受け取ります。$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。$
-
PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法
imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む