Коэффициент соотношения культур - PullRequest
2 голосов
/ 03 августа 2010

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

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

Например, мое исходное изображение, скажем, 1000x750, мое изображение с измененным размером с прикрепленным к нему кадрирующим устройством, скажем, 600x450.Мое окончательное обрезанное изображение должно быть 205x655 - . Какая правильная формула для определения размера оверлея? Другими словами, как определить правильное соотношение?

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

Спасибо

1 Ответ

3 голосов
/ 03 августа 2010

Таким образом, есть 4 прямоугольника / изображения:

  1. Исходное изображение : 1000x750 (изменяется)
  2. (временно) изображение с измененным размером : 600x450 (изменяется в этих пределах, сохранениесоотношение сторон ?)
  3. Поле кадрирования с измененным размером : 123x393 (варьируется)
  4. Окончательное обрезанное изображение : 205x655 (фиксированное требование)

Это правильно?

Если это так, просто вычислите коэффициент изменения размера и введите все это.

Псевдокод:

ResizeRatio             = resizedPicture_width / originalPicture_width;
//-- Note that this assumes aspect ration was preserved, like it should be.

resizedCropBox_width    = 655 * ResizeRatio;
resizedCropBox_height   = 205 * ResizeRatio;

//-- Now translate from the resized crop position to the original pic postion.
finalCropTop            = resizedCropTop  / ResizeRatio;
finalCropLeft           = resizedCropLeft / ResizeRatio;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...