I want to know how do i draw a transparent image cliped
I know how to draw it and i tryed to clip the image with no sucess
have this :
Code: Select all
Procedure DrawTransparentImage(DC, Bitmap, x, y, Width, Height, TransparentColor)
maskDC = CreateCompatibleDC_(DC)
tempDC = CreateCompatibleDC_(DC)
SourceDC = CreateCompatibleDC_(DC)
SelectObject_(SourceDC, Bitmap)
hMaskBmp = CreateBitmap_(Width, Height, 1, 1, 0)
hTempBmp = CreateCompatibleBitmap_(DC, Width, Height)
hMaskBmp = SelectObject_(maskDC, hMaskBmp)
hTempBmp = SelectObject_(tempDC, hTempBmp)
TransparentColor= SetBkColor_(SourceDC, TransparentColor)
BitBlt_ (maskDC, 0, 0, Width, Height, SourceDC, 0, 0, #SrcCopy)
SetBkColor_(SourceDC, TransparentColor)
BitBlt_ (tempDC, 0, 0, Width, Height, maskDC, 0, 0, #SrcCopy)
BitBlt_ (DC, x, y, Width, Height, tempDC, 0, 0, #MergePaint)
BitBlt_ (maskDC, 0, 0, Width, Height, maskDC, 0, 0, #NotSrcCopy)
BitBlt_ (tempDC, 0, 0, Width, Height, SourceDC, 0, 0, #SrcCopy)
BitBlt_ (tempDC, 0, 0, Width, Height, maskDC, 0, 0, #MergePaint)
BitBlt_ (DC, x, y, Width, Height, tempDC, 0, 0, #SrcAnd)
DeleteObject_ (hMaskBmp)
DeleteObject_ (hTempBmp)
DeleteDC_ (maskDC)
DeleteDC_ (tempDC)
DeleteDC_ (SourceDC)
EndProcedure
Code: Select all
Procedure TransparentRGB(img,x,y,RGB)
HLC=ImageList_Create_(ImageWidth(),ImageHeight(),#ILC_COLOR32|#ILC_MASK,1,0)
ImageList_AddMasked_(HLC,img,RGB)
DC=StartDrawing(WindowOutput())
ImageList_Draw_(HLC,0,DC,x,y,#ILD_TRANSPARENT)
StopDrawing()
ImageList_Destroy_(HLC)
EndProcedure
Code: Select all
BitBlt_(DC,0,0,20,20,tempDC,20,0,#SrcCopy)
Sadly theres no #SrcReplace
I hope you can help me!