![]() |
|
|
![]()
|
|
| lokiSE |
|
|||
|
Unregistered |
Есть поток. Из него я декодирую картинки. картинки получаются в таком виде: RGB RGB RGB, т.е. на каждый цвет по 1 байту - 3 байта на пиксел, на картинку - 320*240*3 байта. Все байты лежат в массиве 320*240*3 заподряд. А вопрос такой: как эффективнее всего перенести битовый образ (мой массив, в котором лежат триплеты байтов) на на форму, т.е. отображать прямо на свободном месте формы мою картинку. Наилучший способ для меня - просто получить указатель на область памяти и скопировать мой массив туда и чтоб после такого копирования картинка появилась на экране в нужном мне месте формы. Реализация через SetPixel - слишком медленная. Если можно, пожалуйста с примерами кода.
|
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
lokiSE
Воспользуйся поиском, подобный вопрос уже поднимался. В кратце, тебе просто нужно твой массив загнать в HBITMAP или в CBitmap. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Я был делал так же-контекст памяти-насколько мне известно-наиболее быстрый -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: нет Всего: 43 |
Создаешь DIB секцию, описываешь в что у тебя будет изображение, где пикселы кодируются как RGB, затем вызываешь
::CreaeteDIBSection(.....), она помимо HBITMAP возвращает тебе указатель на область памяти, куда будешь записывать свои байты. Для отображения на форме можно использовать BitBlt Это как один из вариантов, второй - получить HDC формы, на которой ты хочешь рисовать, затем выбрать на ней свой HBITMAP, в который из своей проги пытаться писать напрямую (пропустит ли XP такой трюк - х.з.) ИСпользование функций GDI для отображения видео - задача не для слабонервных. Скорость у стандартного GDI отвратительная, а на неклассических настройках экрана иногда бывают глюки именно с битмапами. Кроме того, у первого варианта есть еще один недостаток: в MSDN настоятельно рекомендуют для таких операций как bitblt использовать контекстно зависимые битмапы, чтоб не приходилось выполнять пересчет цвета в формат контекста. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |