Re[3]: Как вывести bmp картинку с прозрачным фоном?
От: b_monkey Беларусь  
Дата: 26.08.10 06:20
Оценка:
Здравствуйте, AnarchyMob, Вы писали:

AM>Здравствуйте, Йожыгофф, Вы писали:


Й>>Надо сделать еще одну картинку "маску". Где в качестве маски будет ваш черный фон. Налаживаем маску. потом картинку.


AM>Используйте функцию AlphaBlend только битмап обязательно должен быть 32 битный. Через SHLoadImageFile битмап грузится с 16 битный, а из ресурсов можно загружать 32 битные битмапы функцией LoadBitmap.


начиная с CE5.0 поддерживаются очень нужные интерфейсы:
IID_IImagingFactory
IImage
IBitmapImage
IImagingFactory

у IImagingFactory интерфейса есть метод CreateBitmapFromImage который поддерживает кучу разных форматов загрузки например (PixelFormat32bppARGB, PixelFormat32bppPARGB) после того как получите картинку можете использовать AlphaBlend. Работает намного быстрее чем если вы будете делать маску по цвету и выводить Blt функциями (True Mask алгоритм например). AlphaBlend будет корректно работать даже если background фон будет с градиентом.

сначала CreateImageFromFile, потом этот самый Image передаёте в CreateBitmapFromImage, ну да если погуглить то можно и сразу загрузку найти
WBR,
vitaly voloshin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.