After operations that change the crop of the image, like trimImage does, IM preserves the old canvas and positioning info. If you need to do additional operations on the image based on the new size, you'll need to reset this info with setImagePage. This is the equivalent of the +repage command line argument.
<?php
$im->trimImage(0);
$im->setImagePage(0, 0, 0, 0);
?>
Imagick::trimImage
(PECL imagick 2.0.0)
Imagick::trimImage — 画像の輪郭を削除する
説明
bool Imagick::trimImage
( float
$fuzz
)画像の背景色と同じ色の輪郭を削除します。 このメソッドは、ImageMagick バージョン 6.2.9 以降で Imagick をコンパイルした場合に使用可能です。
パラメータ
-
fuzz -
デフォルトでは、対象の色は特定のピクセルの色とまったく同じでなければなりません。 しかし、ふたつの色が微妙に異なることもよくあります。 画像の fuzz メンバは、どの程度の色を「同じ色」とみなすかを表します。 このパラメータは、量の範囲の変化を表します。
返り値
成功した場合に TRUE を返します。
エラー / 例外
エラー時に ImagickException をスローします。
例
例1 Imagick::trimImage() の使用法
画像をトリムし、ブラウザに表示します。
<?php
/* オブジェクトを作成し、画像を読み込みます */
$im = new Imagick("image.jpg");
/* 画像をトリムします */
$im->trimImage(0);
/* 画像を出力します */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>
参考
- Imagick::getQuantumDepth() - quantum depth を取得する
- Imagick::getQuantumRange() - Imagick quantum range を返す
dhp
22-Apr-2009 10:31
Mark van der Velden
05-Dec-2007 06:35
This method requires ImageMagick version >= 6.2.8
