2011-12-17 3 views
2

Мне нужно создать новые размеры изображения, чтобы они соответствовали соотношению заданной ширины и высоты ... но без увеличения размера оригинала.Изменение размера изображения до определенного соотношения без его увеличения

Концепция кажется такой простой, но я не могу присоединиться к точкам.

Кроме того, для образцов кода языком является PHP.

Update:

Это то, что я до сих пор: http://codepad.org/fTdCNhQf

Это выход мне нужно:

Example Image •(пока не может вставлять)

ответ

1

Поскольку расширение не вариант, только ваши варианты кадрирование и расширения.

Попробуйте следующее: допустим, ваше изображение составляет W*H, а желаемое соотношение сторон ширины и высоты составляет R.

  • Используя ширину и пропорции, вычислить высоту цели TH = W/R
  • Используя высоту и пропорции, рассчитать ширину целевой TW = H*R
  • Вычислить площадь изменяет aH = ABS(TH-H)*W и aW = ABS(TW-W)*H
  • , если aH является менее aW, используйте целевую ширину; pad или обрезать изображение по горизонтали на основании знака TH-H
  • В противном случае используйте целевую высоту; подушечка или обрезать изображение по вертикали на основе вздохнув TW-W

Вот краткий пример:

Target R: 5/6 
Image: W=200, H= 300; 
TH = 200/5*6 = 240 
TW = 300*5/6 = 250 
aH = 60*200=12000 
aW = 50*300=15000 

Результирующее действие: с aH меньше aW, обрезать изображение по вертикали до 240

+0

Не выглядит работающим. (даже если asb = abs). Может быть отключен коэффициент? –

+0

@crolpa делает вашу цель «R» равной ширине или высоте по ширине? В расчетах я предполагаю, что 'R' - это ширина по высоте. – dasblinkenlight

+0

Вот что в коде: http://codepad.org/a2HwAGnq –

0

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

Это может быть полезно тогда: http://www.zedwood.com/article/119/php-resize-an-image-with-gd

+0

Будет подбирать существующее изображение (известная ширина/высота) до заданных размеров (с помощью PHP GD) –

Смежные вопросы