|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] GDI+ рисование на статике-перерисовка "заново" |
|
C/C++ - [решено] GDI+ рисование на статике-перерисовка "заново"
|
Старожил Сообщения: 467 |
Профиль | Отправить PM | Цитировать Как можно нарисовав на статике одно изображение с прозрачностью, зарисовать его другим, тоже с прозрачностью, тоесть удалить первое изображение?
(если рисовать сразу поверх первого изображения, то прозрачные части первого совмещаются с прозрачными второго) Я думаю, может сначала зарисовать белым фоном, но то как то кустарно выйдет... |
|
------- Отправлено: 10:43, 25-01-2010 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать Только вот при InvalidateRect появляется мерцание...
|
------- Отправлено: 14:29, 26-01-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Admiral, по поводу масок прозрачности, если принципиальна скорость выполнения и много работы с перемножением картинок, а также не жалко ресурсов, то можно использовать d3d (совместно с GDI+ можно через поверхности IDirect3DSurface7, а можно и без GDI+). Я делал проигрыватель видеороликов "картинка в картинке", а-ля назойливая реклама в телеке. 1280x1024@30fps, GDI+ полностью загружает одно ядро, а d3d (перебрал все виды альфаблендинга) процентов на 5-10.
Если требуется небольшая картинка и скорость смены кадров 1-2 fps, то врукопашную перемножить 2 массива сгодится. С d3d алгоритм такой: на скрытую поверхность копируем часть экана, делаем что надо, копируем обратно. Окно, к которому привязан объект d3d - не показываем. В более поздних directX это сделано в Direct2D Цитата crashtuak:
|
|
Отправлено: 20:17, 26-01-2010 | #12 |
Старожил Сообщения: 467
|
Профиль | Отправить PM | Цитировать pva, c WS_EX_COMPOSITED вообще ничего не рисуется на форме... но то уже другая история. Все мои запросы удовлетворила InvalidateRect(перерисовываю только нужную область, а не весь экран, потому и мерцания невидно).
|
------- Отправлено: 20:47, 26-01-2010 | #13 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:49, 26-01-2010 | #14 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? | verdix | Microsoft Windows 2000/XP | 3 | 03-10-2009 23:46 | |
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках | Alex.sys | Общий по Linux | 5 | 02-04-2009 11:13 | |
Приоритет в диспетчере: "реального времени", "средний", "выше среднего" | alhimik PC | Хочу все знать | 3 | 28-11-2006 05:29 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 | |
Можно ли ставить "GDI+" на русский win'98 ? | Fire Dragon | Microsoft Windows 95/98/Me (архив) | 0 | 18-03-2005 18:58 |
|