Zoom- oder Lupen- Funktion

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Bruchdino
Beiträge: 5
Registriert: 23.12.2006 15:49

Zoom- oder Lupen- Funktion

Beitrag von Bruchdino »

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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

per Image-funktionen?

ein kleines Image kannst du per ReziseImage() vergrößern.

einen ausschnitt deines großen bildes bekommst du z.b. in das kleine image,
indem du das große mittels DrawImage auf das kleine malst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2239
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

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:

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
my pb stuff..
Bild..jedenfalls war das mal so.
Bruchdino
Beiträge: 5
Registriert: 23.12.2006 15:49

Beitrag von Bruchdino »

Vielen dank!!
Antworten