![]() |
|
|
![]()
|
|
| ashtone |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.5.2012 Репутация: нет Всего: нет |
Суть проблемы вот в чем. Имею двухмерную матрицу чисел 512х512, числа в матрице в пределах от 800 и до 2500. Далее приравняв максимальное число к белому цвету а минимальное к черному, остальные рассчитываю относительно первых, надо вывести эту матрицу на экран, путем зарисовки пикселей (512х512) соответствующим цветом (от белого к черному). В итоге получится некая серая рябь. Но проблема в том, что зарисовка происходит уж очень медленно, видно как кадр построчно рисуется. Как ускорить данный процесс?? или хотя бы как сделать так, что бы не было видно самого процесса зарисовки, а записать массив цветов каждого пикселя и сразу все вывести разом.
Вот сама функция вывода на экран изображения (переменные min и max глобальные и рассчитываются в другой функции, рисую на Picture Control, к которой привязана переменная m_paint:
Я так понял надо копать в сторону SetDIBits и BitBlt, но пока не могу понять как реализовать используя эти функции (Использую Visual Studio 2010 MFC) |
|||
|
||||
| ashtone |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.5.2012 Репутация: нет Всего: нет |
Все решил проблему.
решил подобным образом:
Все рисуется достаточно быстро и незаметно. Но возникла некая проблемка. Как задать размер пикселя, при прорисовки изображения?? так как рисунок не влазит в отведенную область, да и придется еще работать с более крупными изображениями... вот что бы их масштабировать надо указать размер рисуемого пикселя.. только вот где..[code=cpp] |
|||
|
||||
| Pavlovich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 5.1.2007 Репутация: нет Всего: 1 |
Функция StretchBlt поможет. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |