Announcement

Collapse
No announcement yet.

Batch-Erstellen von Panorama

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Batch-Erstellen von Panorama

    Hallo,

    ich habe eine ziemlich komische Frage:
    Momentan bastle ich mir einzelne Screenshots aus einem Kartendienst zusammen, indem ich mit Autohotkey den Bildschirmausschnitt bewege, Screenshot mache, ...
    Das Schneiden auf die korrekte Größe habe ich bereits automatisiert mit nconvert.exe, da IrfanView ja das Überschreiben im Batch-Mode nicht unterstützt.

    Jetzt die Frage: Wie kann ich die daraus entstandenen Einzel-Fotos mit IrfanView zusammenfügen mit der Panorama-Funktion und anschließend das Ergebnis abspeichern - und das alles über die Kommandozeile und damit gesteuert aus AutoHotKey heraus? Das Zusammenfügen an sich kriege ich hin, allerdings öffnet sich dann IrfanView nur mit dem Ergebnis und ich muss von Hand speichern, was recht unbequem ist. Eine Automatisierung ist insofern schwer, da die Zeit zum Erstellen des Panoramas stark von der Anzahl der Bilder abhängt ...

    Danke,
    Matthias

    #2
    Hallo Matthias,

    kannst du mal das AHK-Skript hier reinstellen? ;-)
    Welche Optionen verwendest du zum Erstellen des Panorama-Bildes bereits?
    Hast du ein /convert=filename angehängt?

    Panoramas über IV habe ich noch nicht wirklich erstellt, aber das wird sicherlich auch mit Speichern gehen...

    Alternativ kannst du sicherlich auch in AHK noch einige Zeit verstriechen lassen und dann die passenden Tastaturbefehle an IV senden...

    Gruß
    Nils

    Comment


      #3
      Oh, sehr coole Geschichte.
      Mit dem /convert=... klappt es. Ich dachte, das klappt nur, wenn ich auch tatsächlich in ein anderes Format ändern will.

      Zum Skript: Es ist recht hemdsärmlig gemacht, klappt aber eigentlich ganz gut. Ich habe erst mal nicht weiter gebastelt, als es halbwegs das gemacht hat, was es soll :-) Mit den neuen Infos werde ich aber natürlich versuchen, noch weiter zu optimieren und das Ganze vielleicht auch besser parametrierbar machen.

      ;---------------------------------------------------------------------------------------------------------------------------------------
      ;Function 3
      ^!s::
      ;Initialisierungen
      ;Wie lange soll zwischen den einzelnen Bildern nach dem Absetzen des Verstell-Kommandos gewartet werden?
      sleeptime=2500
      sleeptime_half:=sleeptime/2


      ;IrfanView Capture starten & konfigurieren

      ;
      Run "IrfanView.exe.lnk"


      Sleep 1000
      ;ScreenshotMode starten
      Send c
      Send {Enter}


      ;Geosetter starten und konfigurieren
      Run "GeoSetter.exe.lnk"
      Sleep 5000

      ;Senden von Strg+3 in Geosetter, um korrektes Layout für Einstellungen zu aktivieren
      WinActivate GeoSetter
      Send ^3
      MsgBox Bitte nun die entsprechenden Tracks laden und die zugehörigen Einstellungen vornehmen. Zusätzlich noch die Ansicht auf das erste zu schießende Bild stellen. Danach bitte OK drücken!

      ;Senden von Strg+2 in Geosetter, um korrektes Layout für Screenshots zu aktivieren
      WinActivate GeoSetter
      Send ^2


      ;Breite und Höhe abfragen
      InputBox, height, Bitte die Anzahl der Zeilen eingeben!
      heightcount:=height
      InputBox, width, Bitte die Anzahl der Spalten eingeben!
      widthcount:=width
      Sleep 200


      ;Screenshots machen
      ;zur Sicherheit Focus auf Geosetter legen
      WinActivate GeoSetter

      ;großer Loop für Zeilen
      Loop, %heightcount%
      {
      ;kleiner Loop für Spalten
      widthcount:=width
      Loop, %widthcount%
      {
      ;Screenshot machen
      Send ^{F11}

      ;Fenster verfahren horizontal
      MouseClickDrag, Left, 1650, 450, 150, 450, 10

      ;Warten vor nächstem Bild, um Ladezeit zu berücksichtigen
      Sleep %sleeptime%
      }
      widthcount:=width

      ;Zurückfahren auf ursprüngliche horizontale Position
      Loop, %widthcount%
      {
      MouseClickDrag, Left, 150, 450, 1650, 450, 10
      }

      ;Fenster verfahren vertikal
      MouseClickDrag, Left, 900, 950, 900, 150, 10

      ;Warten bis Seite aufgebaut ist
      Sleep %sleeptime%
      }
      heightcount:=height

      ;Zurückfahren auf ursprüngliche vertikale Position
      Loop, %heightcount%
      {
      MouseClickDrag, Left, 900, 150, 900, 950, 10
      }


      ;Senden von Strg+3 in Geosetter, um normales Layout zu aktivieren
      Sleep 200
      Send ^3
      Sleep 200
      Send !{F4}

      ;IrfanView schließen
      WinActivate IrfanView
      Sleep 200
      Send {ESC}

      ;Screenshots beschneiden tbd.
      ;"D:\Dokumente Matthias\Downloads\NConvert-win\XnView\nconvert.exe" -crop 150 100 1500 800 -overwrite -c 2 *.*
      ;"C:\Program Files\_CD, DVD, Multimedia\IrfanView\i_view32.exe" capture_0001.tif /crop=(50,50,50,50) /convert=capture_0001.tif


      ;Zeilen erstellen aus Einzelbildern tbd.
      ;"C:\Program Files\_CD, DVD, Multimedia\IrfanView\i_view32.exe" /panorama=(1,capture_0001.tif,capture_0002.tif) /convert=Zeile1.tif /killmesoftly


      ;Zeilen zusammenfügen aus Einzelzeilen tbd.
      ;"C:\Program Files\_CD, DVD, Multimedia\IrfanView\i_view32.exe" /panorama=(1,capture_0001.tif,capture_0002.tif)



      return
      ;---------------------------------------------------------------------------------------------------------------------------------------

      Hinweise:
      - Für die Darstellung der GPS-Tracks und die Anzeige der Karte nutze ich Geosetter; Alternativ dürfte eine Anpassung an Google Earth aber auch mit geringen Aufwand möglich sein
      - Die Programme starte ich mit Hilfe von Links, da ich Probleme mit langen Pfadnamen hatte
      - Die Werte für das Verschieben sind auf einen Monitor mit 1920x1080 ausgelegt, der am rechten Rand ca. 150Px für einen Newsticker verwendet; auch die Anpassung hier dürfte kein Problem darstellen
      - Die erstellten Screenshots schneide ich im Batch-Modus mit IrfanView genau auf die Größe, die für das Schieben der Fenster verwendet wird (im Beispiel 1500x800 Px) korrigiert um einen Offset, damit die ganzen Anzeige-Elemente und so weiter aus dem Screenshot getilgt werden (bei mir sind es ca. 120Px in x- und 140Px in y-Richtung)
      - Die so geschnittenen Bilder füge ich mit Hilfe von IrfanView mit der Panorama-Funktion zusammen; erst die Einzelbilder zu Zeilen, jeweils speichern. Dann die so entstandenen Zeilen untereinanderfügen. Das Ergebnis ist ein fertiges Bild
      - Ihr könnt das Script gerne nutzen; wenn Jemand Kommentare oder Verbesserungen hat, nehme ich diese gerne :-)

      Viele Grüße,
      Matthias
      Last edited by matmike; 09.09.2011, 05:47 PM. Reason: Erklärungen ergänzt, Code formatiert

      Comment


        #4
        Nochmal eine Ergänzung:
        - In Geosetter habe ich eine Ansicht definiert, die alle Bedienelemente maximiert, damit man möglichst wenige Screenshots machen muss
        - Da die Formatierungen mit Tabulatoren nicht klappen, habe ich den Spaß mal als txt-Datei angehängt
        Attached Files

        Comment


          #5
          Jetzt in der finalen Version inkl. Automatisierung von Schneiden, Zusammenfügen und ausgeben
          Attached Files

          Comment

          Working...
          X