2012-06-22 3 views
1

Я работаю над интересным проектом, который включает в себя отображение большого количества фотографий. Каждая фотография имеет другой размер. Я хотел бы изменить их размер как можно меньше, чтобы они соответствовали друг другу в сетке, некоторые из них, как плагин Masonry.js для JQuery, или Apple's iPhoto Journals.Алгоритм изменения/подгонки для каменной кладки, такой как отображение фотографий

Кто-нибудь сделал что-то подобное раньше? Любые указатели в направлении, которое я должен принять? Я хотел бы сделать это на стороне сервера, предпочтительно используя Python, но мне действительно интересно выяснить алгоритм, стоящий за ним.

ответ

2

Это сложная проблема. Это сводится к тому, чтобы решить, какое ограничение вам больше всего нравится, и жертвуя другими. Обратите внимание, например, что кладка заставляет все в столбцы фиксированной ширины, а iPhoto Journals помещаются на квадратную сетку. Обе жертвуют краями фотографий для макета страницы.

Мы попробовали ряд алгоритмов в этих строках в Tabblo, и все они требуют отказаться от чего-то.

У HP есть алгоритм с названием Blocked Recursive Image Composition (BRIC), который отлично работает, чтобы добиться хорошего баланса.

+0

Наверняка. Меня больше всего интересует решение таких решений, как iPhoto Journals. Похоже, что минимальный размер блока - 1x1, который используется самыми маленькими фотографиями. Затем все остальные фотографии устанавливаются на эту шкалу, 2x2, 2x3 и т. Д. – nathancahill

+0

Хм, вы также сказали, что хотите изменить их размер как можно меньше. Фотографии не квадраты или кратные квадраты, поэтому вы будете терять контент по краям. И вам еще предстоит выяснить, как скомпоновать квадраты. –

+0

Правильно, я думаю в определенных регионах, эти шкалы 1x1 могут иметь разные значения на основе фотографий, которые были местами в этом регионе. – nathancahill

Смежные вопросы