ФорумСообществоФлейм → Формула для "правильного" сохранения пропорций изображения при изм. размера

Формула для "правильного" сохранения пропорций изображения при изм. размера

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 9 января 2010 г. 7:07

    Когдато давно в одном задании мне нужно было залить на сервер изображения по 2 копии каждого(с маленьким вариантом для предосмотра и большого для детального(в отельной странице)).
    Но была пятница и мне было очень лень делать такое. Да и изображения не такими большими были, что смотрелись при уменьшении простом ужасно. Вообщем, я поизвлекал ширины и высоты больших изображений и при выводе каждого - делил на 2 высоту и ширину(если нужно "уменьшить вдвое")…..Впрочем, мне этот номер прошел)….Но я в курсе что лучше не шутить с этим, на крайняк если под жд2 впадло писать скрипт/искать в нете то лучше imgMagick'ом воспользоватся на серве..
    Но, вопрос остается тот же - до правильных пропорций этим изображениям далеко.
    как вычесть правильные пропорции? Например в XnView при изменении размера, когда я уменьшаю высоту, то при нескольких пикселах подряд, высоты остается одной и той же. Как программа "знает" это?……
    Я раз подумал что это возможно разница между шириной(если она больше высоты) и высотой(если меньше ширины) и наоборот….Хотя это "путь вникуда". при меньших разрешениях эта разница будет неактуальной(мне так кажется)….
    есть какието мысли?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 9 января 2010 г. 7:12, спустя 4 минуты 34 секунды

    в школе математики не было? если я правильно понял этот текст (а это не вопрос, а хуйня какая то покрытая мраком страха, запугали чтоли?!)) ), то тут банальная математика. проще всего на имагике реализовывать естественно
    Сапожник без сапог
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 9 января 2010 г. 7:20, спустя 8 минут 25 секунд

    математика в школе была, но лично тогда я в ней перспективы/смысла мало видел. Слишком много левых алгебраических сложных вычитаний….
    А то что нужно для постройки алгоритмов/решений задач(да в то время когда ты даже не думал что будешь заниматься этим) - выбрать для себя из всей этой воды - нужно обладать жестяными нервами)….
    Не, ну разве я бы там был заядлым отличником - ботаном))).
    Ничего личного - просто есть решения задач которые мозг генерит интуитивно, тоесть до которых несложно догадаться(вычитание процентов, среднего арифметического и тп)….. но иногда бывает такое, что както без идей все и мнений)..
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 9 января 2010 г. 7:21, спустя 1 минуту 10 секунд

    Rotten, ты пиздец! я не могу твои посты читать!
    это ПЬЦЩШУПРТ ПДРУПРДУФРАДР!!! БЛЯТЬ ваще!

    что тебе надо?

    пропорцию высчитать или че? в готовых решениях посмотри
    все умрут, а я изумруд
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 9 января 2010 г. 9:21, спустя 1 час 59 минут 41 секунду

    Rotten, iMagick сам пропорции считает.

    А вообще суть примерно такова:
    1. Из начального изображения берется пропорция сторон, округляется до десятой/сотой/тысячной и т.д. части. То есть, ширина делится на высоту, и округляется. Выходит, к примеру у НД-видео, 16:9. Итого 1,778.
    2. При уменьшении любой из сторон нехитрыми формулами вычисляется размер уменьшения второй стороны так, чтоб пропорции оставались одинаковыми.

    Второй вариант ещё проще:
    1. При уменьшении стороны (любой) вычисляется на сколько процентов она уменьшилась по сравнению с начальным размером и после этого другую сторону уменьшают на такой же процент + делают округление до целого согласно математике.
    Вот во втором случае и получается что можно для ширины (к примеру) поставить два размера с разницей в один пиксель, но из-за конечных округлений высоты последняя будет одинаковой по размерам в обоих случаях.
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 9 января 2010 г. 9:58, спустя 36 минут 55 секунд

    Givi, спасибо)….то и имел ввиду..)
    Думаю первый способ удобнее. И так подойдет если высота больше ширины?( коэффициент равен там 0,000015 например).
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 9 января 2010 г. 15:04, спустя 5 часов 5 минут 37 секунд

    Rotten, в любом из случаем подойдет. Проценты - это практически то же самое, только с другой стороны подход + цифры малость другие… но результат одинаковый :)
  • DonDiego

    Сообщения: 27 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 14:05, спустя 951 день 22 часа 1 минуту

    Пережарила котлеты.
    Грустная история
    В столовой крематория.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!