Verfasst: 22.02.2008 22:07
und hier das 13001. Posting, diesmal mit MaskBlt und ich glaube das kommt deinen Wünschen etwas näher.
Allerdings, warum man PATCOPY mit NOTSRCCOPY über das Macro ROP4 kombinieren muß und dabei dann $AACC0020 rauskommt, das kann ich nicht begreifen
, aber so steht es bei MSDN und oh Wunder es funktioniert
Allerdings, warum man PATCOPY mit NOTSRCCOPY über das Macro ROP4 kombinieren muß und dabei dann $AACC0020 rauskommt, das kann ich nicht begreifen


Code: Alles auswählen
;siehe auch: http://support.microsoft.com/kb/89375/de
Enumeration
#TEXTUR
#MASKE
#MIXED
#image1
EndEnumeration
UseJPEGImageDecoder()
imageID1 = LoadImage(#image1, "C:\WINDOWS\Web\Wallpaper\Fischkarawane.jpg")
SourceID = LoadImage(#TEXTUR, #PB_Compiler_Home+"examples\sources\Data\clouds.jpg")
;oder
;LoadImage(#TEXTUR, "C:\WINDOWS\Web\Wallpaper\Stonehenge.jpg")
;SourceID = ResizeImage(#TEXTUR,256,256)
LoadFont(0, "Arial", 64,#PB_Font_Bold)
hwnd=OpenWindow(0, 0, 0, 900, 300, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(hwnd)
ImageGadget(0, 10, 10, 256, 256, SourceID)
MaskID = CreateImage(#MASKE, 256, 256,1)
StartDrawing(ImageOutput(#MASKE))
DrawingFont(FontID(0))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(20,99,"Hallo",#White)
StopDrawing()
ImageGadget(1, 286, 10, 256, 256, MaskID)
TargetID = CreateImage(#MIXED, 256, 256)
TargetDC = StartDrawing(ImageOutput(#MIXED))
DrawImage(imageID1,0,0,256,256)
dc = CreateCompatibleDC_(TargetDC)
SelectObject_(dc, SourceID)
MaskBlt_(TargetDC, 0, 0, 256, 256, dc, 0, 0, MaskID, 0, 0, $AACC0020)
DeleteDC_(dc)
StopDrawing()
ImageGadget(2, 586, 10, 256, 256, TargetID)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
End