|
Модераторы: Partizan, gambit |
|
vikaz |
|
|||
Опытный Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Всем привет!
Ребята, подскажите, кто-нибудь находил алгоритм/библиотеку, которая позволяет объединять несколько разнокалиберных картинок в одно изображение так, чтобы результирующее изображение было наименьшего размера. Заранее спасибо! -------------------- Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
ksili |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Сам не знаешь, чего тебе надо.
Наименьшего размера - это наименьшей площади? Ну так несколько картинок как ни прикладывай - суммарная их площадь не изменится. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
vikaz |
|
|||
Опытный Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
Да, наименьшей площади. С чего вы решили, что не измениться?
Добавлено @ 08:18 Вот Вам для примера две картинки, вы хотите сказать, что площадь у них будет одинаковой!? Изображение #1 Изображение #2 ЗЫ. Если Вы докажите, что они равны, я соглашусь, что я не знаю, чего сам хочу! Это сообщение отредактировал(а) vikaz - 21.8.2013, 08:18 -------------------- Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
|||
|
||||
gambit |
|
|||
Эксперт Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 5 Всего: 40 |
Сортируешь картинки по размеру и начиная с самой большой начинаешь вставлять в первое свободное место. В итоге сначала большие займут площадь, потом мелочь забьет промежутки.
Задача про атласы? |
|||
|
||||
ksili |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Вы предлагаете задачу оптимизации, при этом не озвучиваете сам критерий оптимизации.
Как определить, что алгоритм оптимальный? У картинки как минимум 2 характеристики размера - высота и ширина. Как определить, что одна картинка меньше другой? Поясните хотя бы на примере тех картинок, что выше. Какая из них оптимальнее? Почему? Это сообщение отредактировал(а) ksili - 21.8.2013, 10:26 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
vikaz |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 869 Регистрация: 15.2.2006 Репутация: нет Всего: 12 |
К сожалению на математическом не учился (а может и к счастью), но пришел примерно к такому же алгоритму. Единственное, что просто вставить в свободное место не подойдет, логика будет сложнее.
ХЗ, мне понадобилось для одного внутреннего проекта. Думал, что, явно, подобную задачу уже решали и не один раз, может кто оформил эту логику как библиотеку или класс.
Извини камрад, что не полностью описал то что мне нужно. В этом Вы правы, дал мало инфы. Задача стоит следующая: Есть папка в которой лежат изображения. Нужно создать файл в котором будут лежать все эти картинки, но площадь прямоугольника (результирующего изображения), будет минимальной. Если посмотреть на те две картинки, которые я привел выше, оптимальнее будет первая. Это можно выяснить так: 1. Площадь описанного прямоугольника в первом случае будет меньше чем во втором случае. (просто перемножив высоту на ширину) 2. Визуально более оптимальное решение можно увидеть по пустому месту. В первом случае его нет, а во втором, есть большая пустая площадь в правом нижнем углу. -------------------- Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ |
||||||
|
|||||||
jonie |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
гуглите "задачу укладки ранца" - это она в чистом виде.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |