Hallo,
ich möchte auf ein Foto (.jpg) einen generierten Farbverlauf legen und es wieder abspeichern.
Beispiel: vertikaler Farbverlauf, oben transparent, ganz unten 100% weiß.
Geht das mit den nativen Befehlen oder muss GDI her?
Ich werd hier nicht ganz schlau draus: https://www.purebasic.com/documentation ... gmode.html
Danke!
Halbtransparenten Farbverlauf auf Bild legen
Halbtransparenten Farbverlauf auf Bild legen
PB 6.02 LTS + Win 11
Re: Halbtransparenten Farbverlauf auf Bild legen
Klar das geht mit den Drawing2D Befehlen:
Code: Alles auswählen
Enumeration
#Window
#Gadget1
#Gadget2
#Gadget3
#Image1
#Image2
#Image3
EndEnumeration
; Irgendein Foto
If CreateImage(#Image1, 200, 200, 32)
If StartDrawing(ImageOutput(#Image1))
Box(0,0,100,100,$FF0000)
Box(100,0,100,100,$00FF00)
Box(0,100,100,100,$0000FF)
Box(100,100,100,100,$00FFFF)
StopDrawing()
EndIf
EndIf
; Irgendein Farbverlauf mit Transparenz
If CreateImage(#Image2, 200, 200, 32, #PB_Image_Transparent)
If StartDrawing(ImageOutput(#Image2))
DrawingMode(#PB_2DDrawing_AllChannels|#PB_2DDrawing_Gradient)
LinearGradient(0,0,0,199)
GradientColor(0.0, $00FFFFFF)
GradientColor(1.0, $FFFFFFFF)
Box(0,0,200,200)
StopDrawing()
EndIf
EndIf
; Überlagerung beider Bilder
If CreateImage(#Image3, 200, 200, 32, #PB_Image_Transparent)
If StartDrawing(ImageOutput(#Image3))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawAlphaImage(ImageID(#Image1), 0, 0) ; Irgendein Foto
DrawAlphaImage(ImageID(#Image2), 0, 0) ; Irgendein Farbverlauf
StopDrawing()
EndIf
EndIf
OpenWindow(#Window, 0, 0, 800, 300, "Vector Canvas Gadget", #PB_Window_MaximizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
ImageGadget(#Gadget1, 50, 50, 200, 200, ImageID(#Image1))
ImageGadget(#Gadget2, 300, 50, 200, 200, ImageID(#Image2))
ImageGadget(#Gadget3, 550, 50, 200, 200, ImageID(#Image3))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
End
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Halbtransparenten Farbverlauf auf Bild legen
Geilomat! Vielen Dank! War also "ungefähr" auf dem richtigen Weg, glaube aber allein hätte ich das nicht hinbekommen.
PB 6.02 LTS + Win 11