bitblt
От: TailWind  
Дата: 26.02.20 18:24
Оценка:
Есть HBITMAP: чёрный и прозрачный цвета

Есть dc 32-bit цвета

Нужно этот битмап вывести красным цветом вместо чёрного

Подскажите, пожалуйста, как это сделать?
Re: bitblt
От: Maniacal Россия  
Дата: 27.02.20 06:34
Оценка:
Здравствуйте, TailWind, Вы писали:

TW>Есть HBITMAP: чёрный и прозрачный цвета


TW>Есть dc 32-bit цвета


TW>Нужно этот битмап вывести красным цветом вместо чёрного


TW>Подскажите, пожалуйста, как это сделать?


Я так понимаю, нужно destination заполнить красным, потом использовать MaskBlt или PlgBlt. Но я бы тупо попиксельно в цикле по битмапу прошёлся и поменял нужный цвет на желаемый.
Re[2]: bitblt
От: TailWind  
Дата: 27.02.20 09:54
Оценка:
M>Я так понимаю, нужно destination заполнить красным, потом использовать MaskBlt или PlgBlt.

Наверно нужно создать bitmap полностью закрашенный красным
И рисовать его с помощью MaskBlt
А в качестве маски использовать мой двухцветный рисунок

M>Но я бы тупо попиксельно в цикле по битмапу прошёлся и поменял нужный цвет на желаемый.


Интересная идея, спасибо )
Re[2]: bitblt
От: Mr.Delphist  
Дата: 27.02.20 10:19
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Я так понимаю, нужно destination заполнить красным, потом использовать MaskBlt или PlgBlt.


+1

M>Но я бы тупо попиксельно в цикле по битмапу прошёлся и поменял нужный цвет на желаемый.


Может быть заметно долго
Re[3]: bitblt
От: TailWind  
Дата: 27.02.20 20:45
Оценка:
M>>Я так понимаю, нужно destination заполнить красным, потом использовать MaskBlt или PlgBlt.

MD>+1


Там уже что-то нарисовано
Нельзя закрашивать
Re[4]: bitblt
От: Mr.Delphist  
Дата: 28.02.20 15:29
Оценка:
Здравствуйте, TailWind, Вы писали:

M>>>Я так понимаю, нужно destination заполнить красным, потом использовать MaskBlt или PlgBlt.


MD>>+1


TW>Там уже что-то нарисовано

TW>Нельзя закрашивать

Так и на здоровье — там разные режимы возможны, готовим нужную маску, красим, накладываем. В сложных случаях — делаем поэтапно несколько блиттингов, в финале комбинируем полученный результат с исходной картинкой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.