|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.05.2012, 10:46 | #1 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
Отриосвка изображений по слоям
Доброго времени суток!
Возникла задача реализации вывода изображений по слоям. На данный момент реализовал механизм через потомки bitmap'ов (добавил атрибут маски), которые последовательно отрисовываются с применением маски (два последовательных bitblt на SRCPAINT и SRCAND) на другом битмапе, который в свою очередь выводится на канве control'a (strechblt). По мимо всего выше сказанного слои могут быть векторными. Под векторным слоем я имею введу то, что на нем отрисовываются точки и линии у которых видовой размер не зависит от примененного масштаба ко всей картине (такое можно наблюдать в ГИС системах: когда меняешь масштаб отображения, надписи остаются того же размера). Собственно к чему я это все рассказываю? Дело в то, что при работе с более чем 3-мя 4-мя слоями, среди которых 1-2-и векторых, скорость работы приложения (при масштабировании, при добавлении точек) падает. На данном этапе собственного развития вижу два пути выхода из ситуации: реализация отрисовки от верхнего слоя к нижнему с применением регионов или же переход на DirectX, OpenGL рендоры. Может кто-нибудь поделится со своими виденьями в решении проблемы. Заранее спасибо!
Помог? Ну так нажми на весы!
|
12.05.2012, 11:11 | #2 |
Новичок
Джуниор
Регистрация: 09.05.2012
Сообщений: 4
|
Мне нравится graphics32 (http://graphics32.org/wiki/), для него есть модуль работы с векторной графикой http://www.angusj.com/delphi/gr32_lines.php
Есть встроенное сглаживание, и очень высокая скорость работы. Можно использовать openGL если комбинирование слоев не очень специфическое. |
12.05.2012, 11:13 | #3 |
Новичок
Джуниор
Регистрация: 09.05.2012
Сообщений: 4
|
Если нужно очень сложное и очень специфическое вычисление - стоит посмотреть в сторону OpenCL
|
12.05.2012, 12:15 | #4 | ||
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
Цитата:
Цитата:
Помог? Ну так нажми на весы!
Последний раз редактировалось SNUPY; 12.05.2012 в 14:39. |
||
12.05.2012, 14:24 | #5 |
Новичок
Джуниор
Регистрация: 09.05.2012
Сообщений: 4
|
все изображения представляются в виде большого однородного массива данных.
|
13.05.2012, 23:08 | #6 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
Тема актуальна
Помог? Ну так нажми на весы!
|
14.05.2012, 18:33 | #7 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Я так понимаю, настоящего "вектора", требующего растеризации, нет.
Хотелось бы узнать характерные размеры изображений (в пикселях), что такое масштабирование, какие операции происходят при добавлении точки, а также что подразумевается под скоростью работы и ее характерные величины. |
14.05.2012, 18:57 | #8 | |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
Цитата:
Начну с начала. "характерные размеры изображений" — Любые. "что такое масштабирование" — когда пользователь увеличивает картинку для просмотра, соответственно меняется размер у растровых слое в а у векторного меняются лишь точки расположения точек а сами пиктограмки остаются неизменными. "какие операции происходят при добавлении точки" - рисуем битмап точки, перерисуем слой с этой точкой, перерисуем видовой битмап, выводим видовой слой. "также что подразумевается под скоростью работы" — ниже 24 к/с
Помог? Ну так нажми на весы!
|
|
14.05.2012, 20:21 | #9 | |||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Это несерьезно.
Картинка в 500 Мп - это еще не "любая", но уже будет тормозить по-любому. Понятно, что программа должна работать, минимум, с любым изображением, помещающимся в память, а при наличии особых требований - и без такого ограничения. Но мне интересно, при каких характерных размерах начинают появляться "тормоза". Ну, хотя бы, чтобы прикинуть, есть ли еще ресурс для оптимизации или... что-то надо радикально менять. Цитата:
Если так, возможно, стоит настраиваться на использование Direct3D или OpenGL - GPU очень эффективно справляется с масштабированием. Цитата:
Здесь тоже есть простор для оптимизации, чтобы уменьшить долю перерисовываемых фрагментов. Цитата:
|
|||
14.05.2012, 20:51 | #10 | ||||
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
Цитата:
Цитата:
Цитата:
Цитата:
Помог? Ну так нажми на весы!
|
||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка изображений на С | AshMash | Общие вопросы C/C++ | 0 | 31.01.2011 19:13 |
вставка изображений | abastrikov | Microsoft Office Excel | 0 | 23.12.2010 14:38 |
заливка изображений | kirosin | PHP | 5 | 27.06.2010 18:46 |