PHPのimageconvolution()関数とは?使い方とパラメータを解説
imageconvolution()関数について
PHPのGDライブラリに含まれるimageconvolution()関数は、画像に対して畳み込み(コンボリューション)処理を行うための関数です。この関数を使うことで、シャープ化、ぼかし、エッジ検出など、さまざまな画像効果を実現できます。
構文
bool imageconvolution ( img, matrix, div, offset )
パラメータ
img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。
matrix:畳み込みに使う3×3の行列を指定します。これは、浮動小数点数を3つ持つ配列がさらに3つ格納された配列(2次元配列)として表現します。
div:畳み込み結果の除数です。輝度の正規化に使用され、通常は行列内の全要素の合計値を指定します。
offset:色オフセットです。畳み込み後の色値に加算される値で、明るさを調整する際に利用します。
戻り値
imageconvolution()関数は、処理が成功した場合にTrueを、失敗した場合にFalseを返します。
使用例
以下はimageconvolution()関数を使用した基本的な例です。
<?php
$img = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
$arr = array(array(2, 0, 1), array(-1, -1, 0), array(0, 0, -1));
imageconvolution($img, $arr, 1, 127);
header('Content-Type: image/png');
imagepng($img, null, 9);
?>
出力結果
上記のコードを実行すると、次のような出力が得られます。

別の例
続いて、同じ画像に対して異なるパラメータ値を指定した例を見てみましょう。行列と除数・オフセットの値を変えることで、出力画像にどのような違いが生じるかを簡単に確認できます。
<?php
$img = imagecreatefromgif('https://www.tutorialspoint.com/images/html.gif');
$arr = array(array(3, 2, 1), array(0, 1, 0), array(1, -1, -1));
imageconvolution($img, $arr, 3, 110);
header('Content-Type: image/png');
imagepng($img, null, 9);
?>
出力結果
上記のコードを実行すると、次のような出力が得られます。

このように、matrix(行列)の要素やdiv(除数)、offset(オフセット)の値を調整することで、同じ元画像からまったく異なる視覚効果を生み出すことができます。画像加工のバリエーションを広げたい場合は、ぜひさまざまな組み合わせを試してみてください。
-
PHPのimagefilledrectangle()関数の使い方 – 塗りつぶし矩形を描画する方法
PHPのimagefilledrectangle()関数は、指定した座標をもとに、色で塗りつぶされた矩形(長方形)を画像上に描画するためのGDライブラリ関数です。図形の作成やグラフィック処理などでよく利用されます。構文imagefilledrectangle( $img, $x1, $y1, $x2, $y2, $color )パラメータimgimagecreatetruecolor() などで作成した画像リソースを指定します。x1矩形の1つ目の頂点(始点)のX座標を指定します。y1矩形の1つ目の頂点(始点)のY座標を指定します。x2矩形の2つ目の頂点(対角の終点)のX座標を指定します。y2矩
-
PHPのimagefilledellipse()関数とは?塗りつぶし楕円の描画方法を解説
PHPのimagefilledellipse()関数は、指定した座標を中心として塗りつぶしのある楕円を描画するために使用されるGDライブラリの関数です。図形描画や画像生成を行う際に非常に便利な関数の一つです。 構文 imagefilledellipse( $img, $cx, $cy, $width, $height, $color ) パラメータ img:imagecreatetruecolor()関数などで作成した画像リソースを指定します。この画像に対して楕円が描画されます。 cx:楕円の中心のX座標(横方向の位置)を指定します。 cy:楕円の中心のY座標(縦方向の位置)を指定します。