@yevgenyyakushov
Начинающий web'er

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

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

// Выбор оптимального размера
$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;
Ответ написан
Берете любой графический редактор и уменьшаете с сохранением пропорций, в чем проблема то?
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы