Масштабирование изображения под максимальный размер

Полезный алгоритм, из тех, которые лучше знать. Итак, задача: есть изображение (потенциально — большое), есть максимальная высота и ширина. Надо уменьшить изображение пропорционально так, чтобы оно влезло в эти максимальные пределы.

function getNewSize($size, $maxX, $maxY) {
  $k = $maxX / $maxY;
  $kimage = $size[0] / $size[1];
  if ($kimage > $k) { //resize of maxX
    $ksize = $maxX /$size[0];
  } else { //resize of maxY
    $ksize = $maxY / $size[1];
  }
  $newX = floor($size[0] * $ksize);
  $newY = floor($size[1] * $ksize);

  /* image resize */

  return [$newX, $newY];
}

Спасибо romach с форума php.ru

Добавить комментарий

Ваш e-mail не будет опубликован.