Не так давно я рассказывал, как у нас в Topface устроено хранение и раздача пользовательских картинок на Topface Developer Day (презентация на speakerdeck). Картинки мы нарезаем на лету в nginx с помощью image_filter.
Люди в основном продолговатые в вертикальном направлении и фотографии себя для сервиса знакомств делают соответствующие, дизайнеры хотят квадратики, а nginx вырезает людям не совсем то, что интересует людей (лицо я имею в виду). На примере longcat получается примерно следующее:

Жить с этим приходится обычным способом: взять и дописать самому. В итоге у меня получился патч для модуля image_filter, которому можно сказать, с какой стороны картинки не нужно отрезать края, когда происходит crop. Всё добро на github.
Всё просто, нужно вписать директиву в нужный вам location или server.
Оригинал:

Выравнивание по верху:

Выравнивание по центру (обычное поведение):

Виравнивание по низу:

Оригинал:

Выравнивание слева:

Выравнивание по центру (обычное поведение):

Выравнивание справа:

Для тех, кто пропустил: ссылка на github.
Люди в основном продолговатые в вертикальном направлении и фотографии себя для сервиса знакомств делают соответствующие, дизайнеры хотят квадратики, а nginx вырезает людям не совсем то, что интересует людей (лицо я имею в виду). На примере longcat получается примерно следующее:

Жить с этим приходится обычным способом: взять и дописать самому. В итоге у меня получился патч для модуля image_filter, которому можно сказать, с какой стороны картинки не нужно отрезать края, когда происходит crop. Всё добро на github.
Настройка
Всё просто, нужно вписать директиву в нужный вам location или server.
image_filter_offset {left,center,right} {top,center,bottom};
Наглядные примеры
Вертикальные картинки
Оригинал:

Выравнивание по верху:
image_filter_offset center top;

Выравнивание по центру (обычное поведение):
image_filter_offset center center;

Виравнивание по низу:
image_filter_offset center bottom;

Горизонтальные картинки
Оригинал:

Выравнивание слева:
image_filter_offset left center;

Выравнивание по центру (обычное поведение):
image_filter_offset center center;

Выравнивание справа:
image_filter_offset right center;

Для тех, кто пропустил: ссылка на github.