Bilder markieren, rect speichern, später Bilder entsprechend der rects speichern/bearbeiten

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Bilder markieren, rect speichern, später Bilder entsprechend der rects speichern/bearbeiten

    Hallo miteinander,

    ich hab mir ein Tool "zusammenkopiert" und angepasst, mit dem man eine TIF-Datei (Multi-Tif) öffnen kann, die einzelnen Seiten nacheinander durchblättern, und auf den einzelnen Seiteb Breiche markieren kann, die aus den Seiten in ein neues JPG kopiert werden. Abschließend werden dann die JPGs in ein Word-Dokument eingefügt.
    Aktuell ist es so, dass direkt im Anschluss an das Markieren der "Speicher/Konvertierungsvorgang" vorgenommen wird. Dadurch wirkt der Ablauf ein wenig ruckelig. Deswegen würde ich gerne an einer Stelle, an der man ohnehin erwartet, dass es etwas dauert, nämlich dem Einfügen in Word, das Kopieren/Konvertieren vornehmen. Allerdings hab ich es bis dato nicht hinbekommen...

    Meine Code hänge ich hier an. Kann mir jemand sagen, was ich wie wo ändern sollte, damit die Verarbeitung der Bilder erst direkt vor dem Einfügen in Word vorgenommen wird...?

    Danke für Eure Mühe...

    Grüße aus Ulm,
    Andreas ;)


    PS.: Ob der Code elegant geschrieben... ähm... kopiert ist... darüber hab ich mir keine Gedanken gemacht... ;)
    Dateien
    • Code.txt

      (19,1 kB, 196 mal heruntergeladen, zuletzt: )

    ahstax schrieb:

    ich hab mir ein Tool "zusammenkopiert" und angepasst
    Beginne, den Code zu verstehen, den Du zusammenkopiert hast.
    Es kann ja wohl schlecht sein, dass wir Deine Hausaufgaben machen, denn wir müssen den Code nicht verstehen.
    Jetzt, da er offensichtlich läuft, kannst Du Dir doch jede einzelne Prozedur vornehmen, Setze einen Haltepunkt rein (F9), arbeite das Programm schrittweise ab (F10, F11) und sieh Dir den Inhalt der Variablen an (draufklicken, Shift+F9).
    Wenn Du was verstanden hast, schreib einen ordentlichen Kommentar über / hinter die Zeile.
    Wenn Du durch bist, überlegst Du, wo es klemmt und wo es klemmen soll, dann musst Du ggf. nur den Code von A nach B schieben und fast fertig,
    besser ist es, diese Funktionalität zu isolieren (in einer separaten Prozedur) und dann nur deren Aufruf von A nach B zu schieben und fertig. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ahstax schrieb:

    Ob der Code elegant geschrieben... ähm... kopiert ist... darüber hab ich mir keine Gedanken gemacht...
    Wie Rod schon geschrieben hat, wäre es dann jetzt allerhöchste Zeit :rolleyes:

    In dieser überlasteten Form jetzt noch Threading unterzubringen, wäre sinnlos. Die Form wickelt z.Zt. sämtliche Logik ab, fang an Dein Projekt zu kapseln, sprich Logik in Klassen auszulagern und dort zu behandeln.

    Ein paar Anmerkungen:
    - in den Projekteigenschaften sollte OptionExplicit=ON gesetzt sein, damit Variablen auch deklariert werden müssen
    - in den Projekteigenschaften sollte OptionStrict=ON gesetzt sein, um Äpfel nicht in Birnen zu konvertieren
    - Namensgebung anpassen, z.B. Richtlinien für Namen
    - eine 'selektierbare Picturebox' als abgeleitete Picturebox schreiben, dabei kein CreateGraphics verwenden sondern das Paint Event benutzen
    - diese Picturebox gibt dann, wenn überhaupt nötig, ein Event Cropped zurück
    - für die Images ebenfalls 1 ( oder besser 2) Klassen auslagern: MultiTiff und SingleTiff
    - nimm alle Deine Try...Catch raus, wie willst Du jemals einen Fehler finden ?
    - in der Form bleibet nur die 'Hauptlogik'

    Jetzt kannst Du den Konvertierungsvorgang in der MultiTiff Klasse per Thread erledigen.

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

    Mir ist gerade das Tiff in die Augen gefallen.
    Eine WinForm-Bitmap von einem Tiff eingelesen und / oder als Tiff gespeichert ist (fast) das böseste, was es gibt!!!
    Steig am besten gleich auf eine WPF-Tiff-Image-Klasse oder ganz und gar auf WPF um.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!