関数・クラス解説

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);

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

参考

  • imageconvolution() - div および offset の係数を使用し、3x3 の畳み込み配列を適用する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール