Teil vom Picture kopieren

Hallo Freunde
ich möchte aus einem Bild nur ein gewissen Teil kopieren z.B. (x,y,width,height)
als neues Bild ohne Skallierung in einem Ordner speichern.

Muss doch irgendwie gehen. Ich bin einfach zu blöd
Gruss Micha D.

Sie können dies mit NewPict = DrawPicture tun mit:

[, sourceX As Double] [, sourceY As Double] [, sourceWidth As Double ] [, sourceHeight As Double])
um den gewünschten Teil des Bildes zu definieren.

Ich habe es noch nie gemacht, aber das sollte es tun.

Sag mir, was es ist.

Hallo Emile
vielen Dank für die Antwort.
Leider komme ich hiermit auch nicht klar.

Es ist doch sogar ein Beispiel vorhanden. Was hast Du probiert und was ist das Ergebnis?

hier mit kannst Du ein Bild öffnen und auch speichern.
https://documentation.xojo.com/api/graphics/picture.html
Open
Save

per dialog oder .Children mit for each durch laufen
https://documentation.xojo.com/api/files/folderitem.html
FolderItem

https://documentation.xojo.com/api/graphics/picture.html#picture-graphics
ein Bild erzeugen und mit DrawPicture rein malen

https://documentation.xojo.com/api/graphics/graphics.html
DrawPicture

Hallo zusammen!
also so sieht einer meiner Versuche aus:

var pic as Picture
var f as FolderItem
var p as Picture

f = New FolderItem("/Users/michaeldinse/Desktop/Bildschirmfoto\ 2022-01-27\ um\ 11.32.45.png", FolderItem.PathModes.Shell)
pic=Picture.Open(f)

If f <> Nil and pic<> nil Then
p.Graphics.DrawPicture(pic,200, 100, 50, 50)
Canvas1.Backdrop = p
End If

das liegt in paint

Bin gespannt

Versuche es einmal hiermit:

dim f as FolderItem = FolderItem.ShowOpenFileDialog("")
if f = Nil then Return

dim p as Picture = Picture.Open(f)
if p = Nil then Return

dim newP as new Picture(p.Width/2, p.Height/2)
newP.Graphics.DrawPicture(p, 0, 0, p.Width/2, p.Height/2, 0, 0, p.Width/2, p.Height/2)

Das ist im Action-Event eines Buttons. Schau Dir mal Deinen Code auf pic an. Damit machst Du nichts.

Wie Beatrix schon erwähnt hat, musst du erst das Bild Objekt erzeugen.
Bei PathModes meine ich .Native, bei Windows Backslash.

.DrawPicture(pic,200, 100, 50, 50)
das macht kein Sinn, Du willst bestimmt den Ausschnitt oben links rein malen.

Demo image clipping

https://www.dropbox.com/s/zvkcbhjlcwpgpee/Picture%20cut%20out.xojo_binary_project?dl=1

Hi Leute!
Vielen Dank für Eure rege Anteilname!
Alle zusammen haben mir sehr weitergeholfen.

zu Marcus:
Der PathModus ist schon ok, in meiner DB sind alle Pfade im Shell (iMac)

zu Rudolph:
Danke für das Demo!

zu Beatrix:
Du warst schon immer meine Heldin!

zu Emile:
Du warst der 1.

1 Like

http://documentation.xojo.com/api/graphics/graphics.html#graphics-drawpicture

Wenn Sie die Dokumentation nicht lesen, wird es natürlich nicht klar.

Sie müssen lediglich die Koordinaten in Form eines Rechtecks ​​angeben, das den gewünschten Bildausschnitt enthält.

Schauen Sie sich die vollständige Syntax an, vergleichen Sie mit dem, was ich in meiner vorherigen Nachricht gesagt habe, und Sie sollten es verstanden haben.

https://translate.google.com/ kann Ihnen helfen, ins Deutsche zu übersetzen, wenn Sie kein Englisch verstehen…