Box auf jpg-Bild zeichnen
Verfasst: 14.04.2007 18:16
Hallo !
Habe folgenden Code , bei dem es mir nicht gelingt einen Rahmen auf das Bild zu zeichnen.
Erst wenn ich mal andere Fenster von anderen Anwendungen zeitweise aktiviere und dann das compilierte Programm, sehe ich , das meine Linien zwar gezeichnet wurden , aber eine Ebene tiefer liegen.Ich kann sie während/nachdem ich sie male nicht sehen.
Habe folgenden Code , bei dem es mir nicht gelingt einen Rahmen auf das Bild zu zeichnen.
Erst wenn ich mal andere Fenster von anderen Anwendungen zeitweise aktiviere und dann das compilierte Programm, sehe ich , das meine Linien zwar gezeichnet wurden , aber eine Ebene tiefer liegen.Ich kann sie während/nachdem ich sie male nicht sehen.
Code: Alles auswählen
Enumeration
#window_0
#imagegadget
EndEnumeration
Procedure GetMouseX(Gadget)
GetCursorPos_(mouse.POINT)
MapWindowPoints_(0,GadgetID(Gadget),mouse,1)
ProcedureReturn mouse\x
EndProcedure
Procedure GetMouseY(Gadget)
GetCursorPos_(mouse.POINT)
MapWindowPoints_(0,GadgetID(Gadget),mouse,1)
ProcedureReturn mouse\y
EndProcedure
If OpenWindow(#window_0,0,0,710,540,"Aufnahmen", #PB_Window_SystemMenu | #PB_Window_TitleBar |#PB_Window_ScreenCentered )
CreateGadgetList(WindowID(#window_0))
TextGadget(11, 10,0,100,20,"MouseClick X: 0")
TextGadget(12,10,0,100,20,"MouseClick Y: 0")
EndIf
file$ = "C:\Dokumente und Einstellungen\Patrick\Eigene Dateien\UW_Fuji1\Bild_0001.jpg"
UseJPEGImageDecoder()
LoadImage(1, file$)
If ImageHeight(1)>ImageWidth(1)
ImageGadget(#imagegadget, 377, 145,240,320, ResizeImage(1,240,320))
Else
ImageGadget(#imagegadget, 377, 145,320,240, ResizeImage(1,320,240))
EndIf
posx = 5
posy = 5
Repeat
SmartWindowRefresh(#window_0,1)
Select WaitWindowEvent()
Case #PB_Event_CloseWindow:End
Case 13100 ;#WM_LBUTTONDOWN
SetGadgetText(11,"MouseClick X: "+Str( GetMouseX(#imagegadget)))
SetGadgetText(12,"MouseClick Y: "+Str( GetMouseY(#imagegadget)))
StartDrawing(ImageOutput(1))
Box( posx , posy, GetMouseX(#imagegadget) - posx , GetMouseY(#imagegadget) - posy , $FF0000)
Box(GetMouseX(#imagegadget) -1 , GetMouseY(#imagegadget) -8 , 2 , 16)
Box(GetMouseX(#imagegadget) - 8, GetMouseY(#imagegadget) - 1 , 16, 2 )
StopDrawing()
EndSelect
ForEver