Измените размер изображения, чтобы оно идеально подходило для определенной рамки - PullRequest
4 голосов
/ 08 августа 2011

Я хочу сделать следующее:

  • Мне нужно изменить размеры изображений, чтобы уместить и заполнить поле размером 100x100 пикселей
    Не все изображения являются идеальными квадратами, и это моя проблема для этой задачи
    1. Я хочу определить, какая сторона (ширина или высота) наименьшая.
    2. При уменьшении уменьшите эту сторону до 100px;Отцентрировать назад
    3. Обрезать переполнение с обеих сторон

Я пробовал метод ширина / высота: 100%, но это не дает желаемого результата,(это растянуто и безобразно).Также я видел некоторый метод, но в C # ... мне нужно в PHP.

Буду признателен за любые советы, указания, ввод или готовый скрипт ... Спасибо

с использованием PHP 5.30,0

1 Ответ

3 голосов
/ 08 августа 2011

Вы должны быть в состоянии рассчитать соотношение сторон, заранее зная размеры изображения.Для получения дополнительной информации см. getimagesize ()

$width = 268;
$height = 300;
$MAX_SIZE = 100;
if($width > $MAX_SIZE || $height > $MAX_SIZE) {
    $aspect = $width / $height;
    if($width > $height) {
        $width = $MAX_SIZE;
        $height = intval($MAX_SIZE / $aspect);
    } else {
        $height = $MAX_SIZE;
        $width = intval($MAX_SIZE * $aspect);
    }
}

После этого уменьшенная высота будет доступна в $height, а уменьшенная ширина будет доступна в $width.

...