関数・クラス解説
imagefilter
version:PHP 5, PHP 7 (公式)画像にフィルタを適用する
公式リファレンス
書式
imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] ) : bool
説明
imagefilter() は、指定したフィルタ filtertype を image に適用します。
パラメータ
- image
- imagecreatetruecolor()のような画像作成関数が返す画像リソース。
- filtertype
- filtertype は、以下のいずれかです。
- IMG_FILTER_NEGATE: 画像の色を反転させます。
- IMG_FILTER_GRAYSCALE: REC.601 luma (Y') の計算と同じ係数を使い、 重み付けを赤、緑、青のコンポーネントごとに変えることで、 画像を白黒にします。アルファ値は保持されます。 パレットの制限のため、パレット画像の結果は異なるかもしれません。
- IMG_FILTER_BRIGHTNESS: 画像の輝度を変更します。 輝度レベルを arg1 で設定します。輝度の範囲は -255 から 255 までです。
- IMG_FILTER_CONTRAST: 画像のコントラストを 変更します。コントラストのレベルを arg1 で設定します。
- IMG_FILTER_COLORIZE: IMG_FILTER_GRAYSCALE と似ていますが、 色を指定することが可能です。 arg1、arg2 および arg3 を使用して red、green、 blue の値を指定します。また arg4 を使用して alpha チャネルの値を指定します。 各値の範囲は 0 から 255 までです。
- IMG_FILTER_EDGEDETECT: エッジを検出し、 画像のエッジを強調します。
- IMG_FILTER_EMBOSS: 画像にエンボス処理を行います。
- IMG_FILTER_GAUSSIAN_BLUR: ガウス分布を 使用して画像をぼかします。
- IMG_FILTER_SELECTIVE_BLUR: 画像をぼかします。
- IMG_FILTER_MEAN_REMOVAL: 平均を除去し、 「スケッチ風の」効果を得ます。
- IMG_FILTER_SMOOTH: 画像を滑らかにします。 滑らかさのレベルを arg1 で指定します。
- IMG_FILTER_PIXELATE: モザイク効果を画像に適用します。 arg1 でブロックの大きさを、 そして arg2 でモザイク効果のモードを指定します。
- IMG_FILTER_SCATTER: Scatter 効果を 画像に適用します。arg1 と arg2 を効果の強さを定義するのに使い、 選んだピクセルの色にだけ適用するために 追加で arg3 を使います。
- arg1
-
- IMG_FILTER_BRIGHTNESS: 輝度レベル。
- IMG_FILTER_CONTRAST: コントラストレベル。
- IMG_FILTER_COLORIZE: 赤コンポーネントの値。
- IMG_FILTER_SMOOTH: 平滑度レベル。
- IMG_FILTER_PIXELATE: ピクセル単位のブロックサイズ。
- IMG_FILTER_SCATTER: 効果を減らすレベル。 この値は、 arg2 で設定する追加レベル以上でなければなりません。
- arg2
-
- IMG_FILTER_COLORIZE: 緑コンポーネントの値。
- IMG_FILTER_PIXELATE: 高度なモザイク効果を使用するか否か (デフォルトは FALSE)。
- IMG_FILTER_SCATTER: 効果の追加レベル
- arg3
-
- IMG_FILTER_COLORIZE: 青コンポーネントの値。
- IMG_FILTER_SCATTER: オプション。 効果を適用するインデックスカラーの値の配列。
- arg4
-
- IMG_FILTER_COLORIZE: アルファチャネル。 0 から 127 までの値で、0 は完全な不透明、127 は完全な透明を表す。
返値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
注意
注意: IMG_FILTER_SCATTER の適用結果は常にランダムです。
更新履歴
バージョン | 説明 |
---|---|
7.4.0 | Scatter 効果のサポート (IMG_FILTER_SCATTER) が追加されました。 |
サンプル
例1 imagefilter() グレースケールの例
$im = imagecreatefrompng('dave.png');
if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
echo 'Image converted to grayscale.';
imagepng($im, 'dave.png');
}
else
{
echo 'Conversion to grayscale failed.';
}
imagedestroy($im);
例2 imagefilter() 輝度の例
$im = imagecreatefrompng('sean.png');
if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
echo 'Image brightness changed.';
imagepng($im, 'sean.png');
imagedestroy($im);
}
else
{
echo 'Image brightness change failed.';
}
例3 imagefilter() 単色化の例
$im = imagecreatefrompng('philip.png');
/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
echo 'Image successfully shaded green.';
imagepng($im, 'philip.png');
imagedestroy($im);
}
else
{
echo 'Green shading failed.';
}
例4 imagefilter() での打ち消しの例
// Define our negate function so its portable for
// php versions without imagefilter()
function negate($im)
{
if(function_exists('imagefilter'))
{
return imagefilter($im, IMG_FILTER_NEGATE);
}
for($x = 0; $x < imagesx($im); ++$x)
{
for($y = 0; $y < imagesy($im); ++$y)
{
$index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($index);
$color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);
imagesetpixel($im, $x, $y, $color);
}
}
return(true);
}
$im = imagecreatefromjpeg('kalle.jpg');
if($im && negate($im))
{
echo 'Image successfully converted to negative colors.';
imagejpeg($im, 'kalle.jpg', 100);
imagedestroy($im);
}
else
{
echo 'Converting to negative colors failed.';
}
例5 imagefilter() でのモザイク処理の例
// Load the PHP logo, we need to create two instances
// to show the differences
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');
// Create the image instance we want to show the
// differences on
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));
// Apply pixelation to each instance, with a block
// size of 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);
// Merge the differences onto the output image
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);
// Output the differences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
上の例の出力は、たとえば以下のようになります。
例6 imagefilter() でのScatter効果の例
// Load the image
$logo = imagecreatefrompng('./php.png');
// Apply a very soft scatter effect to the image
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);
// Output the image with the scatter effect
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
上の例の出力は、たとえば以下のようになります。
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール