Hallo,
um das vielleicht besser zu verstehen, habe ich auf die schnelle etwas Code geschrieben, der dann auch läuft, damit jeder sieht was ich meine.
Code: Alles auswählen
Procedure SetWinTransparency (WinHandle.l, Transparency_Level.l) 
  SetWindowLong_(WinHandle,#GWL_EXSTYLE,$00080000)                 ; #WS_EX_LAYERED = $00080000 
  SetLayeredWindowAttributes_(WinHandle,0,Transparency_Level,2)    ; 
EndProcedure 
Procedure ShowBild(File$)
  LoadImage(0, File$)
  ResizeWindow(ImageWidth(), ImageHeight())
  MoveWindow((GetSystemMetrics_(#SM_CXSCREEN)/2)-(ImageWidth()/2), (GetSystemMetrics_(#SM_CYSCREEN)/2)-(ImageHeight()/2))
  ResizeGadget(0,0,0,ImageWidth(), ImageHeight())
  SetGadgetState(0,UseImage(0))
EndProcedure
Procedure RebuiltWindow()
  CloseWindow(0)
  hWnd = OpenWindow(0, 0, 0,0,0,#PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible, "")
  CreateGadgetList(hWnd)
  ImageGadget(0,0,0,0,0,0)
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_TOOLWINDOW)
  HideWindow(0,0)
  SetWinTransparency(hWnd,250)
  SetWindowPos_(WindowID(0), #HWND_TOPMOST, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE)
EndProcedure
Procedure Screenshot()
    hImage = CreateImage(1,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))  
    hDC    = StartDrawing(ImageOutput())  
    DeskDC = GetDC_(GetDesktopWindow_())  
    BitBlt_(hDC,0,0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN),DeskDC,X,Y,#SRCCOPY)  
    StopDrawing()  
    ReleaseDC_(GetDesktopWindow_(),DeskDC)
    ResizeImage(1,350,270)
    SetGadgetState(1,UseImage(1))
EndProcedure 
Procedure open_window()
  If OpenWindow(1, 10, 10, 390, 330,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Screenshot")
    If CreateGadgetList(WindowID(1))
      ImageGadget(1, 10,10,350,270,0)                            
    EndIf
  EndIf
EndProcedure
UseJPEGImageDecoder()
UseJPEGImageEncoder()
open_window()
RebuiltWindow()
ShowBild(OpenFileRequester("Wählen sie jpg Bilder aus","c:\","Jpg Bilder|*.jpg;*.jpeg;|All Files|*.*",0,0))
Delay(1000)
Screenshot()
Repeat 
  Event = WaitWindowEvent()
    Select Event
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case 1
        EndSelect 
    EndSelect
  Until Event = #PB_Event_CloseWindow
Hoffe damit wird klarer das das transparente Image nicht mit abgespeichert wird
Gruß Michael
PS: den Code von Green Snake habe ich hier schon übernommen, leider ohne Erfolg