(PECL imagick 2, PECL imagick 3)
Imagick::resizeImage — 画像のサイズを変更する
$columns
,$rows
,$filter
,$blur
,$bestfit
= false
,$legacy
= false
指定した大きさと フィルタ で、画像のサイズを変更します。
注意: パラメータ
bestfit
の挙動は Imagick 3.0.0 で変わりました。 これより前のバージョンでは、200x150 の画像に対して 400x400 を指定した場合は何もせずそのままになっていました。 Imagick 3.0.0 以降では、この画像は 400x300 に拡大されます。これが、 指定したサイズに対して「ベストフィット」する大きさだからです。bestfit
を使う場合は、幅と高さの両方を指定しなければなりません。
columns
画像の幅。
rows
画像の高さ。
filter
フィルタ定数 の一覧を参照ください。
blur
blur 要素。> 1 はぼやけた状態、< 1 はシャープな状態を表します。
bestfit
オプションの fit パラメータ。
成功した場合に true
を返します。
バージョン | 説明 |
---|---|
PECL imagick 2.1.0 | オプションのパラメータ fit が追加され、 このメソッドは、比例形式の拡大・縮小をサポートするようになりました。 どちらかのパラメータにゼロを渡すと比例形式の拡大・縮小を行います。 |
例1 Imagick::resizeImage()
<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
// blur 要素。1 > はぼやけた状態、< 1 はシャープな状態を表します。
$imagick = new \Imagick(realpath($imagePath));
$imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);
$cropWidth = $imagick->getImageWidth();
$cropHeight = $imagick->getImageHeight();
if ($cropZoom) {
$newWidth = $cropWidth / 2;
$newHeight = $cropHeight / 2;
$imagick->cropimage(
$newWidth,
$newHeight,
($cropWidth - $newWidth) / 2,
($cropHeight - $newHeight) / 2
);
$imagick->scaleimage(
$imagick->getImageWidth() * 4,
$imagick->getImageHeight() * 4
);
}
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>