Page 1 of 1
Painting alpha blended bmp on windows
Posted: Fri Jan 15, 2021 6:54 am
by hua
Hi guys,
When I use the code below, my alpha blended bmp is painted with black background instead of being transparent.
Which part I went wrong?
Code: Select all
hBmp2 := ReadBitMap(0, ud_bmpDir()+"\2021.bmp")
DrawBitmap( hDC, hBmp2, nTop, nLeft)
TIA
Re: Painting alpha blended bmp on windows
Posted: Fri Jan 15, 2021 2:46 pm
by ukoenig
There is a function
ABPaint( hDC := GetWindowDC( hWnd ), nLeft, nTop, oBmp:hBitmap )
sample
testab.prg
DEFINE BITMAP oBmp FILENAME "..\bitmaps\AlphaBmp\Trash.bmp"
...
...
ACTIVATE WINDOW oWnd ;
ON PAINT ABPaint( hDC, 10, 10, oBmp:hBitmap, 220 ) // 0-255 transparency level
or You can use a GDIPLUS-solution
sample :
Code: Select all
// image location
c_Path := cFilePath(GetModuleFileName( GetInstance() ) )
c_Path1 := c_Path + "BITMAPS\"
...
...
// inside window define
oWnd:bPainted := < |hDC|
DRAWIMAGE( oWnd )
RETURN NIL
>
...
...
/ -----------------
FUNCTION DRAWIMAGE( oWnd )
LOCAL oGraphics := Graphics():New( oWnd:hDC )
LOCAL oImage := GDIBmp():new( c_path1 + "FWH.bmp" ) // Image
// position top, left
oGraphics:DrawImage( oImage, 493, 15, oImage:GetWidth(), oImage:GetHeight() )
oGraphics:Destroy()
oImage:End()
RETURN NIL
regards
Uwe
Re: Painting alpha blended bmp on windows
Posted: Fri Jan 15, 2021 6:18 pm
by hua
Uwe,
Thank you!