Как рассчитать пропорцию уменьшенной картинки

Как рассчитать пропорцию уменьшенной картинки

Как рассчитать пропорцию уменьшенной картинки

Когда встает задача, что нужно рассчитать пропорцию изображения, не всегда знаешь, как правильно это сделать. Начинаешь судорожно вспоминать школьную программу, искать нужные материалы.

Но не все так сложо и непонятно, как кажется на первый взгляд. Для чего вообще все это нужно? Вот самый распространенный пример.

Допустим, у нас на сайте есть загрузка изображений, и мы хотим, чтобы после загрузки у нас создавалась миниатюрная копия, превьюшка какртинки. Часто это надо для анонса новостей, например. А скрипт требует, чтобы вы задали хотя бы примерные размеры миниатюрного изображения - его ширину и высоту.

Допустим также, что вы уже наметили его ширину, но как быть с высотой? Как высчитать ее та, чтобы картинка казалась более-менее пропорциональной по отношению к исходной.

Формула расчета

Все делается в два этапа:

  • 1 - Делим исходную ширину на требуемую ширину;
  • 2 - Получаем требуемую высоту, поделив исходную высоту на результат деления двух ширин (п.1).

Пример. Возьмем уже всем известные размеры изображений: 1024x768 и 800x600. Представим, что мы не знаем высоту второй картинки. По формуле получается следующее: 768/(1024/800) = 600. Это и есть требуемая нам высота.

Если же мы знаем высоту, а нам нужно получить ширину, то необходимо проделать все, как в первой формуле, только наоборот.

Чтобы получить требуемую ширину, нужно:

  • 1 - Делим исходную высоту на требуемую высоту;
  • 2 - Получаем требуемую ширину, поделив исходную ширину на результат деления двух высот (п.1).

То есть, 1024/(768/600) = 800.

Для простоты расчетов я написал простой инструмент, который вам в этом поможет.


  • Написано "Получаем требуемую ширину, поделив исходную ширину на результат деления двух высот " ,а в формуле умножение "1024(768/600) = 800"
  • Ой, точно, забыл знак деления поставить. Спасибо большое! Исправил.
  • А вот как у меня получается, 800/(1024/768) == 600; При ширине в 800 пикселей мы 800 делим на (ширину делим на высоту) получаем 600 пикселей будет наша высота.