Stehe mal wieder tierisch auf'm Schlauch. Ich möchte einen Stempel (Img1) auf ein gleichgroßes Bild Img2 aufdrücken und evtl. die Transparenz einstellen. Der Witz dabei ist, daß das bisherige Programm den Hintergrund (Img2) auch bei vollständiger Transparenz im Stempel (Img1) verblaßt. Genau das will ich nicht, sondern nur, daß dort der Hintergrund unbeeinflußt bleibt.
Code: Alles auswählen
EnableExplicit
Define.l Img1, Img2, Out, sb, Rot
Define.s Text
Define.f r1,r2,w45,w135
sb = 40
Img1 = CreateImage(#PB_Any, 400,400, 32)
Img2 = CreateImage(#PB_Any, 400,400, 32)
If Img1 = 0 Or Img2 = 0
MessageRequester("Fehler!", "Konnte Bild von 400x400 Bildpunkten nicht öffnen. Speicherplatzmangel?", #PB_MessageRequester_Ok)
End
EndIf
Out = ImageOutput(Img1)
StartDrawing(Out)
Box(0,0, 400,400, RGBA(255,255,255,0))
Rot = RGBA(255,0,0,255)
FrontColor(Rot)
DrawingMode(#PB_2DDrawing_Outlined|#PB_2DDrawing_AlphaClip)
Circle(200,200, 200, Rot)
Circle(200,200, (200-sb), Rot)
DrawingMode(#PB_2DDrawing_AlphaClip)
FillArea(sb/2,200, -1, Rot)
r1 = (200-sb-2)
r2 = sb/2
w45 = Radian(45)
w135 = Radian(135)
LineXY(200-r1*Cos(w45)+r2*Cos(w135),200+r1*Sin(w45)-r2*Sin(w135), 200+r1*Cos(w45)+r2*Cos(w135),200-r1*Sin(w45)-r2*Sin(w135), Rot)
LineXY(200-r1*Cos(w45)-r2*Cos(w135),200+r1*Sin(w45)+r2*Sin(w135), 200+r1*Cos(w45)-r2*Cos(w135),200-r1*Sin(w45)+r2*Sin(w135), Rot)
FillArea(200-(200-sb-2)*Cos(w45),200+(200-sb-2)*Sin(w45), -1, Rot)
StopDrawing()
Out = ImageOutput(Img2)
StartDrawing(Out)
Box(0,0, 400,400, RGBA(255,255,255,255))
Box(150,175, 100,50, RGB(0,0,0))
DrawingMode(#PB_2DDrawing_AlphaBlend)
DrawAlphaImage(ImageID(Img1), 0,0, 228)
StopDrawing()
UsePNGImageEncoder()
SaveImage(Img2, "C:\Stop.png", #PB_ImagePlugin_PNG, 10, 32)
FreeImage(Img2)
FreeImage(Img1)
End

Gruß - WPö