Максимальная площадь кадрирования для данного изображения и формата изображения - PullRequest
2 голосов
/ 17 декабря 2011

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

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

Пример: изображение 1000x500, a.r. 1,25: максимальный урожай 625x500. изображение 100x110, максимальная обрезка: 80x110.

1 Ответ

7 голосов
/ 17 декабря 2011

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

$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;
}

См. В действии .

...