Hallo und Servus zusammen,
könnte mir bitte jemand sagen wie ich eine Zoom- oder Lupen- Funktion programmiere.
Ich habe ein Bild und möchte verschiedene Bereiche "raus" Zoomen.
Könntet Ihr mir helfen, wie ich das hin bekomme und wie ich dann dieses Programm in mein Programm integriere?
Danke
Schöne Weihnachten
Servus
Bruchdino
Zoom- oder Lupen- Funktion
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ich weiß nicht ob KG das meinte, aber bei DrawImage() kannst du das quellbild gleich skalieren, und so z.b. auf eine zweites zielbild vergrößert zeichnen. in dem du es versetzt zeichnest, wählst du dann noch, von wo der ausschnitt genommen werden soll.
bleistift:
bleistift:
Code: Alles auswählen
CreateImage(0, 300,300)
StartDrawing( ImageOutput(0) )
For i=0 To 200
Circle(Random(300),Random(300),Random(30),RGB(Random(200),Random(200),Random(200)) )
Next
StopDrawing()
CreateImage(1, 300,300)
ww=600
wh=300
hWin=OpenWindow(0, 50,50,ww,wh, "")
CreateGadgetList(hWin)
ImageGadget(0, 0,0, 200,100, ImageID(0) , #PB_Image_Border)
ImageGadget(1, 300,0, 200,100, ImageID(1) , #PB_Image_Border)
Repeat
wmx=WindowMouseX(0)
wmy=WindowMouseY(0)
If wmx>=GadgetX(0) And wmx<GadgetX(0)+GadgetWidth(0) And wmy>=GadgetY(0) And wmy<GadgetY(0)+GadgetHeight(0)
StartDrawing( ImageOutput(1) )
Box(0,0,300,300, $505050)
DrawImage( ImageID(0), -wmx*4+150, -wmy*4+150, 300*4,300*4)
StopDrawing()
SetGadgetState(1,ImageID(1))
EndIf
event=WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit