Как рассчитать максимальную ограничивающую рамку на основе фиксированного соотношения сторон? - PullRequest
0 голосов
/ 28 мая 2019

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

Мне нужно выбрать самую большую внутреннюю ограничивающую рамку среди предоставленных пользователем фотографий на основе этого соотношения сторон.Вот два примера (книжный и альбомный):

enter image description here

enter image description here

Итак, учитывая динамикуДобавленные пользователем размеры, как я могу рассчитать максимально возможный выбор культур на основе моего фиксированного соотношения сторон?

const FIXED_ASPECT_RATIO = 3 / 4

const usersImageWidth = 800
const usersImageHeight = 550

const cropWidth = ?
const cropHeight = ?
const cropX = ?
const cropY = ?

1 Ответ

0 голосов
/ 28 мая 2019

Я не уверен, правильно ли я понял ваш вопрос, но из того, что я понял, я бы попробовал это так:

// Check if picture is portrait or landscape oriented
if (userImageWidth >= userImageHeight) {
// If picture is landscape oriented, max crop height = height
  cropHeight = userImageHeight;
// Width is calculated according to ratio:
  cropWidth = (cropHeight / 4) * 3;
// If picture is portrait oriented, max crop width = width
} else {
  cropWidth = userImageWidth;
// Height is calculated according to ratio:
  cropHeight = (cropWidth / 3) * 4
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...