![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2012
Сообщений: 148
|
Есть битмапа огромного размера, над ней нужно провести ряд преобразований с помощью фильтров и сохранить в картинку на локальном диске. Собрал тестовый вариант и прибалдел от загрузки ЦП.
Понимаю, что надо дробить картинку на битмапы меньшего размера, с которыми и работать. Не понимаю как собрать куски bitmapdatа-ы в один большой? Разбивка на куски: Последний раз редактировалось Vlad84; 05.06.2015 в 18:39. |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Jul 2012
Сообщений: 148
|
А чем copyPixels принципиально отличается от метода draw?
|
|
|||||
|
Кстати, не уверен, что применение разных фильтров на маленькие кусочки дадут ожидаемый результат в конечной сборке в единое изображение, наверно появятся швы.
И почему-то есть подозрение, что разбивка не даст прирост в производительности.. Но надо конечно тестировать. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
1. зачем предварительно разбивать на куски большой битмап, если все равно над всеми кусками придется выполнять различные действия? Как это может положительно сказаться на производительности?
2. после применения фильтров к кускам, действительно, велика вероятность, что появятся швы 3. в данном случае draw будет быстрее, чем copyPixel - ведь во втором случае метод будет заключен в довольно медленный (и огромный!) цикл 4. а почему загрузка проца критична? И если все-таки критична, может, в сторону шейдеров посмотреть? 5. если дело в том, что приложение во время выполнения работы подвисает, может распределить применение фильтров по-времени? |
|
|||||
|
Lorem ipsum
|
meiciuc, в твоем комментарии ответ на пункт 1 раскрывается в пункте 5.
Про огромный цикл я не понял — есть же аргумент sourceRect. Что касается неоднократно упомянутых швов, то их можно полностью избежать, если применять всякие blur/displace к тайлу с полями. С одной стороны это безусловно увеличит время обработки, с другой — это решение.
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
Цитата:
Конечно, можно усложнить себе задачу - применять фильтры к кусочкам с бордерами. Я только так и не понял - зачем? Каким образом нарезка большой картинки с последующим сшиванием может увеличить скорость преобразования этой картинки? |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|