(PECL imagick 2 >= 2.0.1, PECL imagick 3)
Imagick::distortImage — さまざまな方式で画像を歪める
$method
, array $arguments
, bool $bestfit
): boolさまざまな方式で画像を歪めます。 これは、元画像の色を新たな画像の色に対応させることで行います。 新たな画像は、'bestfit' を true に設定しない限りは元画像と同じ大きさになります。
'bestfit' を有効にし、使用する歪め方式がサイズ変更を許可していた場合は、 変換後の画像に合わせて画像のサイズやオフセットが調整されます。 多くの場合、元画像の仮想オフセットも考慮したマッピングが行われます。
このメソッドは、ImageMagick バージョン 6.3.6 以降で Imagick をコンパイルした場合に使用可能です。
成功した場合に true
を返します。
エラー時に ImagickException をスローします。
例1 Imagick::distortImage() の使用法
画像を歪めてブラウザに表示します。
<?php
/* 新しいオブジェクトを作成します */
$im = new Imagick();
/* 新しいチェッカー板パターンを作成します */
$im->newPseudoImage(100, 100, "pattern:checkerboard");
/* 画像フォーマットを png に設定します */
$im->setImageFormat('png');
/* 新しい透明な可視領域を設定します */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
/* マット処理を有効にします */
$im->setImageMatte(true);
/* 歪め用の制御点 */
$controlPoints = array( 10, 10,
10, 5,
10, $im->getImageHeight() - 20,
10, $im->getImageHeight() - 5,
$im->getImageWidth() - 10, 10,
$im->getImageWidth() - 10, 20,
$im->getImageWidth() - 10, $im->getImageHeight() - 10,
$im->getImageWidth() - 10, $im->getImageHeight() - 30);
/* 歪め処理を行います */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);
/* 画像を出力します */
header("Content-Type: image/png");
echo $im;
?>
上の例の出力は、 たとえば以下のようになります。