Максимальная площадь посева для заданного изображения и пропорции

Есть ли функция PHP / GD, которая может вычислить это:

Вход: ширина изображения, высота изображения и соотношение сторон в чести. Выход: ширина / высота максимальной центрированной обрезки, которая соответствует данному соотношению сторон (несмотря на исходное соотношение сторон изображения).

Пример: изображение 1000×500, ar – 1,25: максимальная урожайность – 625×500. изображение равно 100×110, максимальный урожай: 80×110.

Нет функции, которая вычисляет это, потому что это элементарная математика:

$imageWidth = 1000; $imageHeight = 500; $ar = 1.25; if ($ar < 1) { // "tall" crop $cropWidth = min($imageHeight * $ar, $imageWidth); $cropHeight = $cropWidth / $ar; } else { // "wide" or square crop $cropHeight = min($imageWidth / $ar, $imageHeight); $cropWidth = $cropHeight * $ar; } 

Смотрите в действии .