Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage対象にマッチする任意のピクセルの値を変更する

説明

publicImagick::floodFillPaintImage(
    mixed$fill,
    float$fuzz,
    mixed$target,
    int$x,
    int$y,
    bool$invert,
    int$channel = Imagick::CHANNEL_DEFAULT
): bool

対象にマッチするピクセルとその直接の近傍の任意のピクセルの色の値を変更します。 このメソッドは、廃止予定の Imagick::paintFloodFillImage() を置き換えるものです。 このメソッドは、ImageMagick バージョン 6.3.8 以降で Imagick をコンパイルした場合に使用可能です。

パラメータ

fill

塗りつぶし色を表す ImagickPixel オブジェクトあるいは文字列。

fuzz

あいまいさをあらわす量。たとえば、これを 10 に設定すると、 赤色の値が 100 の色と 102 の色は同じものとみなされます。

target

対象の色を表す ImagickPixel オブジェクトあるいは文字列。

x

開始位置の X 座標。

y

開始位置の Y 座標。

invert

true の場合は、対象の色にマッチしない任意のピクセルをペイントします。

channel

そのモードで有効なチャネル定数を指定します。 複数のチャネルを適用するには、チャネル定数 をビット演算子で組み合わせます。デフォルトは Imagick::CHANNEL_DEFAULT です。 チャネル定数 の一覧を参照ください。

戻り値

成功した場合に true を返します。

例1 Imagick::floodfillPaintImage() の例

<?php


$im = new Imagick();


$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");


$im->resetIterator();
$combined = $im->appendImages(true);


$combined->writeImage("floodfillpaint_intermediate.png");


$x = 1;
$y = 1;


$target = $combined->getImagePixelColor($x, $y);


$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);


$combined->writeImage("floodfillpaint_result.png");
?>

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

Imagick::floodfillPaintImage() の出力例
Imagick::floodfillPaintImage() の出力例
To Top