вообще есть 2 варианта: обрезать (crop) и сжать (resize)
логично предположить что вам нужен сперва ресайз, а после кроп, но в нем есть свои особенности. в частности какую именно часть вы хотите обрезать (по краям или по центру). в инетах полно готовых плагинов, библиотек, скриптов, которые умеют всё это делать
можно написать руками. ничего особенного там нет. для получения опыта и разминки мозга может быть полезно
алгоритм действия примерно такой
есть картинка с произвольной шириной и высотой
определяем меньшую из двух сторон
делаем ресайз меньшей стороны до необходимой (в вашем случае 700)
после обрезаем лишнее
если по тупому резать - то отмеряете от 0 до 700 и всё
по умному у большей стороны вычитается необходимые 700 разделяете по пополам
к примеру
была у вас картинка 200*300 (ш*в)
меншая сторона 200 (ширина)
узнаем коефициент масштабирования (700/200 = 3.5)
увеличиваем до 700. высота пропорционально увеличивается до 300*3,5 = 1050
после обрезаем полученную картинку по высоте от (1050-700)/2 = 175 до 175+700 = 875
короче ничего кроме математики и здравого смысла здесь нет
|