Как масштабировать и обрезать с помощью ImageMagick convert?

учитывая следующий PHP код:

function image_scale_and_crop(stdClass $image, $width, $height) {
  $scale = max($width / $image->info['width'], $height / $image->info['height']);
  $x = ($image->info['width'] * $scale - $width) / 2;
  $y = ($image->info['height'] * $scale - $height) / 2;

  if (image_resize($image, $image->info['width'] * $scale, $image->info['height'] * $scale)) {
    return image_crop($image, $x, $y, $width, $height);
  }
}

чтобы поместить его на английском языке, сначала мы делаем изменение размера, сохраняя соотношение сторон, чтобы меньший край изображения стал требуемым размером, а затем полученное изображение обрезается вдоль более длинного края до $width X $height с равным количеством вырезанных с каждой стороны (меньшая сторона не будет нуждаться в обрезке).

возможно ли это сделать за один ?

1 ответов


Я считаю, что ответ convert "$input" -resize "${width}x${height}^" -gravity center -crop "${width}x${height}+0+0" $output.