Алгоритмы → Делаем Liquid Resize своими руками
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).

(НЛО прилетело и растянуло этот рисунок здесь)

(НЛО прилетело и растянуло этот рисунок здесь)
Персональные блоги → Революция масштабирования — Rsizr.com

В этом хабратопике многоужаваемый
ejectВот первая известная мне реализация - Rsizr.com. Нужно сказать, очень впечатляет!
Комментарии, как говорится, излишни. Просто залейте своё изображение и поиграйте с масштабом. Только не советую загружать большие файлы - потребуется много времени на обработку.
По мотивам моего блога.
UPD: Наглядная демонстрация: http://youtube.com/watch?v=vIFCV2spKtg и http://rsizr.com/about/gallery.
Персональные блоги → Seam Carving — революция в масштабирование изображений
Масштабировать изображения можно несколькими способами.
1) nearest neighbor — убиваем или клонируем ближайшего соседа.
Cокращаем строки и колонки пикселов если нужно уменьшить, и дублируем их если нужно увеличить изображение — проще не бывает… И быстрей, наверное тоже… В общем всё хорошо, пока не вспоминаем про качество картинки.
2) bilinear — тут мы скрещиваем соседей.
Уменьшая изображение, меняем два пиксела на один, равняющийся чему-то среднему, а при увеличении точно такой-же пиксел вставляем между родителями. Не слишком сложно, но зато качество на порядок лучше!
3) bicubic — шведская семья.
Тут всё так-же как и с bilinear, только родителей больше. Т.е. на цвет «ребёнка» влияют все соседние пикселы, а иногда и соседи соседей. И это конечно ещё красивей.
4) vector/fractal based — тут алгоритмы посложней.
Если в кратце, то перед масштабированием, картинка векторизитруется, и в процессе выбора цвета для новых пикселов участвуют векторы, края которых делают чуть контрастнее. В результате изображение в основном выигрывает.
Вот, полюбуйтесь:

1) nearest neighbor — убиваем или клонируем ближайшего соседа.
Cокращаем строки и колонки пикселов если нужно уменьшить, и дублируем их если нужно увеличить изображение — проще не бывает… И быстрей, наверное тоже… В общем всё хорошо, пока не вспоминаем про качество картинки.
2) bilinear — тут мы скрещиваем соседей.
Уменьшая изображение, меняем два пиксела на один, равняющийся чему-то среднему, а при увеличении точно такой-же пиксел вставляем между родителями. Не слишком сложно, но зато качество на порядок лучше!
3) bicubic — шведская семья.
Тут всё так-же как и с bilinear, только родителей больше. Т.е. на цвет «ребёнка» влияют все соседние пикселы, а иногда и соседи соседей. И это конечно ещё красивей.
4) vector/fractal based — тут алгоритмы посложней.
Если в кратце, то перед масштабированием, картинка векторизитруется, и в процессе выбора цвета для новых пикселов участвуют векторы, края которых делают чуть контрастнее. В результате изображение в основном выигрывает.
Вот, полюбуйтесь:
