Seite 1 von 1

Transparenter Bildausschnitt

Verfasst: 04.05.2011 09:18
von Velindos
Hallo,
möchte ein Bild in ein Bild(transparent) mit einen Ausschnitt einfügen! Darunter verstehe ich;"Ich schneide aus einen Bild einen Bereich aus. Erstelle ein neues transparentes Bild, in dem ich den Ausschnitt positioniere". Wenn ich nun das neue Bild im ImageGaget darstelle soll nur der eingefügte Ausschnitt sichtbar sein und der Rest des Bildes transparent sein.
Hab es Versucht, komme aber mit dem alpha Kanal nicht klar damit! Das Bild verschwindet gänzlich etc., daher der zweite ImageGadget Eintrag! Kann mir jemand helfen?

Code: Alles auswählen

Enumeration
  #VorlageBild
  #TransparenterAusschnittBild
EndEnumeration

;-Images
;{-Image Plugin
UsePNGImageDecoder()
UsePNGImageEncoder()
;}-ende

RedrawPfad$="C:\Bild1.png"
RedrawPfad2$="C:\Bild2.png"

VorlageBild=LoadImage(#VorlageBild, RedrawPfad$) 

TransparenterAusschnittBild=CreateImage(#TransparenterAusschnittBild, 300, 300,32|#PB_Image_Transparent)
;TransparenterAusschnittBild=CreateImage(#TransparenterAusschnittBild, 300, 300)

   StartDrawing(ImageOutput(#TransparenterAusschnittBild))
    DrawAlphaImage(ImageID(#VorlageBild),0,50)
    StopDrawing()
   
   If OpenWindow(0, 0, 0, 400, 500, "Transparenter Bildausschnitt", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
     
     ;ImageGadget(1,50,50,700,500,ImageID(#TransparenterAusschnittBild))
     ImageGadget(1,50,50,700,500,ImageID(#VorlageBild))

     Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
     
   EndIf
Gruss ... Velindos

Re: Transparenter Bildausschnitt

Verfasst: 04.05.2011 09:33
von STARGÅTE

Code: Alles auswählen

StartDrawing(ImageOutput(#TransparenterAusschnittBild))
    DrawingMode(#PB_2DDrawing_AlphaBlend)
    DrawImage(ImageID(#VorlageBild),0,50)
StopDrawing()
Wenn du mit einem 32-Bit Image arbeitest (also das transparente), dann solltest du auch einen Alpha-Mode nutzen.
Dann kannst du auch direkt DrawImage nutzen ...

Re: Transparenter Bildausschnitt

Verfasst: 04.05.2011 11:01
von Velindos
Hallo STARGÅTE,
DANKE für deinen Tip, funktioniert. Wo ich nicht klar komme wie das mit dem Alpha-Mode läuft!

Code: Alles auswählen

             TransparenterAusschnittBild=CreateImage(#TransparenterAusschnittBild, 300, 300,32|#PB_Image_Transparent)
             StartDrawing(ImageOutput(#TransparenterAusschnittBild))
             DrawingMode(#PB_2DDrawing_AlphaChannel|#PB_2DDrawing_AlphaBlend)
             DrawImage(ImageID(#VorlageBild),0,50,300,200)
             ;DrawAlphaImage(ImageID(#VorlageBild),0,50,300,200)
             StopDrawing()
             SaveImage(#TransparenterAusschnittBild,RedrawPfad2$, #PB_ImagePlugin_PNG)
             SetGadgetState(#EndBild, ImageID(#TransparenterAusschnittBild))
Bekomme immer einen schwarzes Bild!
Gruss ... Velindos