FC2ブログ

phpのgmagickで画像縮小

PHPのgmagickを使ってformなどでアップロードされた画像を縮小してフォーマットをjpegに変えて保存します。
アニメーションGIFの場合、最初のコマを対象にします。

public function makeResize($srcPath, $dstPath, $size) {
$gm = new Gmagick();
$gm->readImage($srcPath);
if ($gm->getNumberImages() > 1) {
$gm->setImageDispose(0);
$gm->setImageIndex(0);
$frame = $gm->getImage();
} else {
$frame = $gm;
}

$width = $frame->getImageWidth();
$height = $frame->getImageHeight();
if ($width > $height && $width > $size) {
$frame->resizeImage($size, 0, Gmagick::FILTER_LANCZOS, 1);
} else if ($height > $size) {
$frame->resizeImage(0, $size, Gmagick::FILTER_LANCZOS, 1);
}
$gm->setImageFormat('JPEG');
$gm->write($dstPath);
$gm->destroy();
}
スポンサーサイト