![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| nik2009nik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 11.2.2012 Репутация: нет Всего: нет |
Привет.
Загружаю точечный рисунок в память программы с помощью LoadImage (работаю на чистом WinAPI) При несовпадении размеров исходного и целевого прямоугольников: Функция BitBlt обрезает рисунок Функция TransparentBlt растягивает рисунок Но у меня появилась необходимость обрезать рисунок и сделать его фон прозрачным, т.е. выполнить обе функции подряд над одним и тем же рисунком. Оказалось, что это не так просто: при совпадении исходного и целевого устройств ничего не происходит, а при добавлении еще одного (промежуточного) совместимого устройства - тоже ничего не происходит. Необходимо, чтобы элементы дизайна хранились в одном файле BMP, а не каждый в отдельном. Подскажите, пожалуйста, как мне осуществить и обрезку рисунка, и установление прозрачного цвета одновременно? Это возможно с помощью стандартного GDI? Желательно подробно, так как хочу вникнуть в суть. |
|||
|
||||
| Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
для этого выбирай другой формат, BMP для этого не подходит.
используй AlphaBlend() http://vsokovikov.narod.ru/New_MSDN_API/Bi..._alphablend.htm или создавай прозрачность сам задавая в каждом 4 байте ее сам. http://ru.wikipedia.org/wiki/BMP -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а я так и не понял, что мешает использовать одновременно BitBlt и TransparentBlt на одном растре
для ясности, BitBlt - не обрезает рисунок, а делает копию его фрагмена TransparentBlt - не растягивает рисунок (хотя может и это), а делает то же самое, что и BitBlt, но пропуская пикселы с заданным цветом -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |