GDI rückgängig machen

  • Allgemein

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    GDI rückgängig machen

    Hi.
    Ich habe mich eben ein wenig damit beschäftigt, ein Image zu bearbeiten.

    Zuerst wird es geladen mit Image.FromFile(), dann wird dieses Image einer picturebox zugewiesen. Dieses bearbeite ich dann, indem ich Graphics.Drawlines() benutze und damit etwas daraufzeichne. Das passiert halt im MouseClick-Event und es wird an der Mausposition gezeichnet.

    Nun will ich, dass bei jedem Benutzen das vorher gezeichnete wieder verschwindet.
    Allerdings kann ich nicht einfach ein globales Image erstellen und beim Laden diesem zuordnen, denn sowohl dieses als auch das Image der Picturebox würden auf das selbe Objekt pointen und somit würde mein "Backup-Objekt" auch überzeichnet werden.

    Welche Möglichkeiten gibt es also, dies wieder rückgängig zu machen? Mir fällt einfach nichts ein im Moment.

    Danke für jeden hilfreichen Beitrag^^
    Also mann könnte nach jeder Bearbeitung ein Backup erstellen, doch ich behaupte jetzt mal das dies wohl die schlechteste Lösung wäre.
    Array/List of Bitmap und einfach nach jeder Aktivität das Bild Speichern.

    Denke aber das diese Methode mit der Zeit und den Schritten viel Speicher frisst.

    Wenn du es mal versuchen möchtest, mit diesem Code kannst du Bitmaps kopieren:

    VB.NET-Quellcode

    1. Overloads Function CopyBitmap(source As Bitmap) As Bitmap
    2. Return New Bitmap(source)
    3. End Function

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eistee“ ()

    Hat nicht geklappt.
    Ich habs einfach so gelöst, dass beim 1. Öffnen der Path gespeichert wird und vor jedem Bearbeiten in der picturebox das Image erneut vom File geöffnet wird^^

    Falls jemand dennoch bessere Lösung kennt, darf er sie natürlich gerne posten :)
    besser wäre es sich die Schritte des zeichnens zu merken und dann entsprechend auf das Grundbild zeichnen, dabei kannst du dir zum Beispiel nur die letzten 10 Schritte merken, alles davor wird zum Grundbild endgültig hinzugefügt(das ist dann das, was nicht mehr Rückgängig gemacht werden kann)...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---