Совсем недавно я столкнулся с задачей масштабированием изображений в php, создание маленьких превью для больших картинок. Соль задачи была в том, что масштабировать мне предстояло под определенное разрешение. Порыскав инете, не нашел ничего толкового, пришлось пораскинуть серым веществом, и вот что из этого вышло: у изображений в большинстве случаев либо горизонталь, либо вертикаль больше, поэтому просто сделать ресайз под заданные размеры не выйдет - уменьшенная картинка деформируется. Чтобы этого не произошло, перед масштабированием необходимо выполнить несколько операций, а именно: нужно вычислить так называемую "рамку", прямоугольник, по размеру которого будет обрезаться картинка. "Рамка" должна быть кратна заданным для масштабирования размерам, а значит размеры "рамки" надо вычислить. Потом, надо спозиционировать воображаемую "рамку" на изображении, чтобы обрезанная картинка содержала наиболее актуальную часть.