Suche Beispielcode zum Festlegen eines Bildausschnittes

Hallo in die Runde.
Bevor ich jetz das Rad komplett neu erfinde, Frage ich mal nach geeignetem Beispielcode.

Ich benötige eine Funktion, der ich ein Bild übergebe. In einem passendem Dialog soll dieses Bild angezigt werden und der Anwender soll dort einen (rechteckigen) Bildausschnitt (mit der Maus) festlegen können. Dieser Ausschintt soll nachträglich in der Größe und Lage verändert werden können.
Eine Möglichkeit zum Zoomen des Bildes während der Bearbeitung wäre schön.

Hat jemand eine solche Funktion in seinem Programm und würde mir den Code zur Verfügung stellen? Oder gibt es das schon irgendwo als Beispiel?

Gruß, Stefan Mettenbrink.

Für Web habe ich soetwas gebaut. Für welches Target brauchst Du das?

Ich benötige das für Mac OS, Windows und Linux.

Sind die genutzen Funktionen denn so Web-spezifisch?

Naja, copy an paste wird nicht funktionieren. Da muss man schon einiges anpassen.
Im Web ist das ein fileupload und anschliessend passiert vieles im Webcanvas. Wie gro der Aufwand ist, dass auf Desktop umzubauen kann ich nicht sagen, der Code ist auch schon ein paar Jahre alt, da stecke ich gedanklich nicht mehr drin.
Ich knnte Dir diesen Teilbereich aus dem Projekt herauskopieren, das wird dann allerdings so ersteinmal nicht einfach lauffhig sein. Als Grundlage fr eine eigene Entwicklung knnte es vermutlich dienen.

Ich denke, das würde mir reichen.

Ich habe mir Projekt jetzt nochmal angeschaut.
Jetzt ist mir wieder eingefallen, ich habe damals von dem XOJO-WebCanvas auf ein “natives” Browser-Canvas befeuert von JavaScript umgestellt und dies dann eigentlich nur das Ergebnis an Xojo übergeben. Die Kommunikation Client <-> Server <-> Client war unter Xojo einfach zu träge.
Leider habe ich diese erste Entwicklungsphase (reines Xojo-Canvas) auch nicht ins Git eingecheckt.
Mit dieser Javascript-Variante kannst Du natürlich rein gar nichts anfangen, da davon eigentlich nichts in Xojo passiert.
Sorry…

Schade.
Dennoch vielen Dank für Deine Bemühungen.

Der Algorithmus heit “Marching Ants”. Es wrde mich wundern, wenn es davon nicht eine Xojo-Version gbe. Der zweite Teil mit dem Verschieben sollte mit dem Beispiel “Objects in Canvas” machbar sein.

Marching Ants wre hbsch, mir reicht aber schon ein (z. B. rotes) Rechteck mit den entsprechenden Greifpunkten in den Ecken und an den Seiten.

Gundstzlich habe ich die Funktion schon. Allerdings funktioniert die Bedienung nicht immer korrekt. Seinerzeit habe ich das mal quick&dirty zusammengeklppelt und so gelassen. Jetzt kam (mal wieder) ein Hinweis auf die hakeliege Funktion und Einschrnkungen in Zusammenhang mit der Lupe.

Bevor ich mich jetzt in meinen alten, hsslichen Code reinfinde und die Fehler behebe, hatte ich auf eine bessere Basis gehofft.

Gru, Stefan Mettenbrink.

as the simplest programming
Copy and paste in preview
// Show image outside XOJO with preview / makea area / copy area

// Bild ausserhalb XOJO mit Vorschau anzeigen / Bereich makieren / Bereich kopieren

// Aufruf in XOJO
Dim neu As picture
Dim c As New Clipboard

If c.PictureAvailable = True Then
neu = c.Picture
c.close
window1.Backdrop = neu
Else
MsgBox"kein Bild in der Zwischenablage"
End If

https://www.dropbox.com/s/2joc3hjhptry0nb/Clipbord-uebernahme.xojo_binary_project?dl=0

Hier liegt ein Missverstndnis vor.
Ich bentige einen Dialog (ein Fenster) in dem ich ein Bild anzeigen lasse. In dem Dialog soll der Anwender einen Ausschnitt innerhalb des angezeigten Bildes festlegen knnen. Als Ergbnis bentige ich die Koordinaten des Ausschittes (top, left, high width).

Hier ein kleines Programm als Beispiel
die Korrektur des Ausschnittes muss noch angepasst werden

https://www.dropbox.com/s/oaflu73o1i19v5w/Bildhintergrund-Ausschneiden.xojo_binary_project?dl=0

Ja, das ist etwa an das ich gedacht hatte.
Noch den Mauszeiger an der passenden Stelle ndern und weitere Punkte zum ndern/Verschieben hinzufgen.

Damit kann man arbeiten.

Danke

ich habe die richtige Datei gefunden, mit 4 Eckpunkten + 90 Grad Drehung

https://www.dropbox.com/s/y3srk8mngmfaqvx/Bildhintergrund-Ausschneiden-2019-2.xojo_binary_project?dl=0

Ja genau, das gefllt mir.
Vielen Dank!

Hast Du zufllig auch noch eine Variante mit einer Zoomfunktion fr das Ursprungsbild?

Das klingt nun hingegen für mich interessant :slight_smile: Dass man mit den Maus-Koordinaten bei den Latenzen im Web nichts anfangen kann, habe ich bei einer ähnlichen Aufgabenstellung ebenfalls festgestellt und bin erstmal bei einer recht unschönen UX ohne Drag-Selection gelandet. Welche JS-Library hast du dabei für das Auswählen des Ausschnitts hergenommen?

Hallo Stefan,

ich habe in meinem Programm ein Fenster, in dem ich Bilder auswhlen, zoomen und in einen Ausschnitt einpassen kann. Ich nutze das fr die bernahme und Zurechtschneiden von Fotos als “Passfoto”. Damit kannst Du sicher alles machen.

Genau solches suche ich!

Kann ich ein Beispielprojekt bekommen?