mal wieder hänge ich an einer Kleinigkeit fest und sehe den Wald vor lauter Bäumen nicht.
Vielleicht kann mir von Euch jemand einen Stubs verpassen.
Ich würde gerne ein Bild drehen und dann anschliessend abspeichern. Das mit dem drehen klappt ja soweit und man kann das Ergebnis in einem Imagegadget ausgeben aber das mit dem Speichern will nicht. Wo ist hier mein Denkfehler ?
Der Originale Code stammt hier aus dem Forum ich habe den nur ein wenig umgearbeitet da ich nicht so gerne mit #PB_Any arbeite.
Original Beitrag: http://www.purebasic.fr/german/viewtopic.php?p=225337
Vielen Dank für jegliche Tipps.
Grüße
Alen
Code: Alles auswählen
; Bild drehen per API PlgBlt_
; Original source at:
; http://www.purebasic.fr/german/viewtopic.php?p=225337
EnableExplicit
Procedure rotate(Image.l,rl.s)
Enumeration
#tmp_image
#new_image
EndEnumeration
Protected hh.w, br.w, tmp.l, dc.l, imgnr.l
Dim p.point(2)
hh = ImageHeight(Image): br = ImageWidth(Image)
If hh > br
tmp = CreateImage(#tmp_image,hh,hh)
Else
tmp = CreateImage(#tmp_image,br,br)
EndIf
If rl = "rechts"
p(0)\x=hh: p(0)\y=0
p(1)\x=hh: p(1)\y=br
p(2)\x=0: p(2)\y=0
Else
p(0)\x=0: p(0)\y=br
p(1)\x=0: p(1)\y=0
p(2)\x=hh: p(2)\y=br
EndIf
dc = StartDrawing(ImageOutput(#tmp_image))
DrawImage(ImageID(Image),0,0)
PlgBlt_(dc,p(),dc,0,0,br,hh,0,0,0)
StopDrawing()
imgnr = GrabImage(#tmp_image,#new_image,0,0,hh,br)
FreeImage(#tmp_image)
ProcedureReturn imgnr
EndProcedure
Enumeration
#window
#button_l
#button_r
#imageGadget
#input_image
EndEnumeration
Define.l imgnr, Event, welcherButton
UseJPEGImageDecoder()
OpenWindow(0,0,0,850,700,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ButtonGadget(#button_l, WindowWidth(0) - 100, 10, 80, 25, "Links")
ButtonGadget(#button_r, WindowWidth(0) - 100, 40, 80, 25, "Rechts")
LoadImage(#input_image,"D:\PICT0015.JPG")
ImageGadget(#imageGadget,0,0,0,0,ImageID(#input_image))
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget Or Event = #PB_Event_Menu
welcherButton = EventGadget()
Select welcherButton
Case #button_l
imgnr = rotate(#input_image, "links")
SetGadgetState(#imageGadget, imgnr)
SaveImage(imgnr, "d:\test.jpg", #PB_ImagePlugin_JPEG)
Case #button_r
imgnr = rotate(#input_image, "rechts")
SetGadgetState(#imageGadget, imgnr)
SaveImage(imgnr, "d:\test.jpg", #PB_ImagePlugin_JPEG)
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
End