Как найти соотношение сторон для картинки?

В общем, проблема такая, не могу сообразить что делать со сторонами картинки. Допустим у нас есть изображение 780х1040, нужно его уменьшить оставив пропорции изображения, но есть условие, его ширина должна быть меньше чем 660, а высота меньше чем 500.
  • Вопрос задан
  • 18801 просмотр
Решения вопроса 1
@yevgenyyakushov Автор вопроса
Крч, все решил:

// Выбор оптимального размера
$initialSizeWidth = 660;
$initialSizeHeight = 500;

// $image[0] - ширина, $image[1] - высота

if( $image[1] > $image[0] ){
	$adaptedWidth = $initialSizeWidth;
	$coefficienWidth = $image[0] / $initialSizeWidth;
	$prevHeight = $image[1] / $coefficienWidth;

	$adaptedHeight = $initialSizeHeight;
	$coefficienHeight = $prevHeight / $initialSizeHeight;
	$adaptedWidth = $initialSizeWidth / $coefficienHeight;
}else{
	$adaptedHeight = $initialSizeHeight;
	$coefficienHeight = $image[1] / $initialSizeHeight;
	$prevWidth = $image[0] / $coefficienHeight;

	$adaptedWidth = $initialSizeWidth;
	$coefficienWidth = $prevWidth / $initialSizeWidth;
	$adaptedHeight = $initialSizeHeight / $coefficienWidth;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FLUNKEY
@FLUNKEY
самовар
Поделив ширину на высоту мы получим соотношение сторон относительно ширины.
Если мы хотим изменить высоту сохраняя пропорции, для получения ширины надо новую высоту умножить на соотношение сторон.
Если мы хотим изменить ширину сохраняя пропорции, для получения высоты надо новую ширину поделить на соотношение сторон.

var width = 1280;
var height = 720;
var ratio = width / height;


//новая ширина относительно новой высоты
var new_height = 500;
var new_width = new_height * ratio;


//новая высота относительно новой ширины
var new_width = 800;
var new_height = new_width / ratio;
Ответ написан
Берете любой графический редактор и уменьшаете с сохранением пропорций, в чем проблема то?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы