Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Оптимальный алгоритм объединения изображений |
Автор: vikaz 21.8.2013, 07:37 |
Всем привет! Ребята, подскажите, кто-нибудь находил алгоритм/библиотеку, которая позволяет объединять несколько разнокалиберных картинок в одно изображение так, чтобы результирующее изображение было наименьшего размера. Заранее спасибо! |
Автор: ksili 21.8.2013, 07:58 |
Сам не знаешь, чего тебе надо. Наименьшего размера - это наименьшей площади? Ну так несколько картинок как ни прикладывай - суммарная их площадь не изменится. |
Автор: vikaz 21.8.2013, 08:07 |
Да, наименьшей площади. С чего вы решили, что не измениться? Добавлено @ 08:18 Вот Вам для примера две картинки, вы хотите сказать, что площадь у них будет одинаковой!? ![]() Изображение #1 ![]() Изображение #2 ![]() ЗЫ. Если Вы докажите, что они равны, я соглашусь, что я не знаю, чего сам хочу! |
Автор: gambit 21.8.2013, 10:24 |
Сортируешь картинки по размеру и начиная с самой большой начинаешь вставлять в первое свободное место. В итоге сначала большие займут площадь, потом мелочь забьет промежутки. Задача про атласы? |
Автор: ksili 21.8.2013, 10:26 |
Вы предлагаете задачу оптимизации, при этом не озвучиваете сам критерий оптимизации. Как определить, что алгоритм оптимальный? У картинки как минимум 2 характеристики размера - высота и ширина. Как определить, что одна картинка меньше другой? Поясните хотя бы на примере тех картинок, что выше. Какая из них оптимальнее? Почему? |
Автор: vikaz 21.8.2013, 11:06 | ||||||
К сожалению на математическом не учился (а может и к счастью), но пришел примерно к такому же алгоритму. Единственное, что просто вставить в свободное место не подойдет, логика будет сложнее.
ХЗ, мне понадобилось для одного внутреннего проекта. Думал, что, явно, подобную задачу уже решали и не один раз, может кто оформил эту логику как библиотеку или класс.
Извини камрад, что не полностью описал то что мне нужно. В этом Вы правы, дал мало инфы. Задача стоит следующая: Есть папка в которой лежат изображения. Нужно создать файл в котором будут лежать все эти картинки, но площадь прямоугольника (результирующего изображения), будет минимальной. Если посмотреть на те две картинки, которые я привел выше, оптимальнее будет первая. Это можно выяснить так: 1. Площадь описанного прямоугольника в первом случае будет меньше чем во втором случае. (просто перемножив высоту на ширину) 2. Визуально более оптимальное решение можно увидеть по пустому месту. В первом случае его нет, а во втором, есть большая пустая площадь в правом нижнем углу. |
Автор: jonie 28.8.2013, 15:09 |
гуглите "задачу укладки ранца" - это она в чистом виде. |