Announcement

Collapse
No announcement yet.

Panorama in BEIDE Richtungen

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

    Requested Panorama in BEIDE Richtungen

    Hallo Leute,

    Leider vermisse ich eine Möglichkeit zum Erstellen von "Panorama"-Bildern in beide Richtungen (horizontal UND vertikal) gleichzeitig.

    Die derzeitige Funktion ist für meine Zwecke sehr zuverlässig (auch bei verschieden großen Bildern).

    Da ich manchmal jedoch tausende kleine Bildchen zu einem großen zusammenfügen will - also die Bildchen erst alle in Zeilen, dann diese Zeilen jeweils untereinander - ist das (bei einer Gesamtzahl von z.B. 85 x 42 Bilchden) manuell SEHR aufwändig.

    Als (leider nicht funktionierenden) Vergleich nenne ich hier mal XnView, welches diese Funktion zwar bietet, aber jeweils das letzte Bildchen in der Reihe verzerrt.

    Als Problem stellt sich dabei dar, dass z.B. bei 85 Bildern 84 mit 64x64 Punkten vorh. sind, das letzte jedoch nur 30x64 Punkte hat.

    Wenn ich die Reihen (Zeilen) manuell (also erst alle horizontal, dann die "Zeilen" vertikal) zusammenfüge, geht das. Ist aber (bei 42 Zeilen) wie gesagt sehr aufwendig.

    Mit einer von mir versuchten Batch-Datei komme ich auch nicht weiter, da sich die "FOR .. IN .. DO .." - Schleifen nicht so richtig verschachteln lassen.

    So muß ich also für die gleich-großen Bildchen (also alle 64x64er) XnView benutzen, um dann den Rest der rechten Spalte und unteren Zeile mit IV zusammenzufügen...

    Ergo: Da die vorhandene Panorama-Funktion in IV (einfaches Anfügen) für horizontal / vertikal sehr zuverlässig funktioniert, wünsche ich sie mir auch in beide Richtungen - aber OHNE VERZERRUNGEN (wie bei XnView)!

    MfG, KC-Kid
    KC-Kid, time is bit -
    ______ it's byte time!

    #2
    Dann solltest Du erst die 30x64 "aufbohren", damit sie ebenfalls 64x64 haben und dann erst zusammenfügen.

    Zum aufrufen und zusammenstellen des Panoramabildes würde ich eher eine Hochsprache wie VB nehmen, denn der Befehlsumfang des Kommandozeileninterpreters ist gegenüber VB eher extrem dürftig!
    Wenn Windows die Antwort ist, wie blöd war dann die Frage?
    Windows ist nicht die Antwort, sondern die Frage!
    Und Nein lautet die Antwort!

    Comment


      #3
      Vielen Dank für die schnelle Antwort!

      Das mit dem "aufbohren" ist ja noch umständlicher (beim o.g. Beispiel schließlich 42x! - und hinterher muß ich den zugefügten Teil auch wieder entfernen...)
      - UND: kann ich eben nur mit XnView machen, da dort das Zusammenfügen horizontal und vertikal in EINEM Abwasch unterstützt wird...

      Das mit der Hochsprache hab ich mir auch schon überlegt (...da noch irgendwo PowerBasic rumzuliegen...)
      "...wie VB nehmen,..." - kann zwar VB mit dem Office-Kram (also z.B. Excel) einigermaßen programmieren, aber was brauch ich dann um es "ohne alles" (z.B. als Script) laufen zu lassen?
      Last edited by KC-Kid; 16.12.2009, 11:37 AM.
      KC-Kid, time is bit -
      ______ it's byte time!

      Comment


        #4
        kann zwar VB mit dem Office-Kram (also z.B. Excel) einigermaßen programmieren, aber was brauch ich dann um es "ohne alles" (z.B. als Script) laufen zu lassen?
        Das hilft schon, denn auch von dort aus können Programme (IV) gestartet werden und auch Parameter übergeben werden.

        In einer inneren FOR-Schleife stellst Du erst ein breites Bild im Sinne einer Zeile zusammen und in einer äußeren drum herum verbindest Du immer eine Ziel nach der anderen - schwupp, ist das Gesamtbild fertig.

        ich mache das mit Stadtplankacheln aus dem Web, die ich programmgesteuert herunterlade und zu einem großen Plan aus 5x5 Kacheln von IV zusammenkleben lasse. Bei der Gelegenheit reduziere ich auch gleich mit /bpp=8 die zu hohe Farbtiefe.

        Die Files beim panorama-Parameter müssen ja Kommasepariert angegeben werden, also sammelst Du in den Schleifen nur die Dateinamen zu Kommandozeilen zusammen. Am Ende jeder inneren Schleife ist die Kommandozeile für eine komplette Zeile beisammen und die erzeugt mit einem griffigen Namen (z. B. 'Zeile_1.JPG') ein Grafikzeilenbild. Den Namen sammelst Du jetzt in der äußeren Schleife nebst einem Komma in einer Variablen. Wenn auch alle äußeren Schleife durch sind, hast Du soviele Grafikdateien nebst den Namen, wie Du Zeilen hast und die werden EINMAL per IV zur großen Grafikdatei verbunden.

        Wie sieht denn Deine Matrix aus? 2 Bilder breit und 42 Bilder untereinander?
        Wenn Windows die Antwort ist, wie blöd war dann die Frage?
        Windows ist nicht die Antwort, sondern die Frage!
        Und Nein lautet die Antwort!

        Comment


          #5
          "...VB mit dem Office-Kram (also z.B. Excel)..."
          -> "Das hilft schon, denn auch von dort aus können Programme (IV) gestartet werden und auch Parameter übergeben werden."
          Wie meinst'n das? - muß ich erst 'ne Excel-Datei mit dem eingebauten VB-Script starten um dann aus Excel heraus das Script zu starten ?!?
          Das würde ich schon hinkriegen, aber es wäre wie mit 'ner Kanone Luftgewehrkugeln zu verschießen um den Hauptgewinn abzuräumen ;-))
          Wollte ja wissen, wie ich (ohne den ganzen MSDN-Kram zu installieren,- nur Office schon vorh.) VBasic DIREKT "starten" kann. Von mir aus auch interpretiert, statt kompiliert... Vermutlich werde ich doch noch PowerBasic irgendwo rauskramen...

          "Wie sieht denn Deine Matrix aus?"
          Wie schon im ersten Posting angesprochen (Beispiel 85 x 42), sind sie unterschiedlich. Die größte war bisher 93 x 76 (also insgesamt 7068 kleine Teilbilder).

          Das Problem mit der CMD-Zeile ist (wie gesagt) die Verschachtelung der beiden FOR-Schleifen, da ja nicht nur ein Befehl zwischen den Loops gemacht werden kann und beide Schleifen ja in derselben (Kommando-)Zeile laufen müssen. Bei bis zu 10 Zeilen ODER Spalten sehe ich in Deiner Variante (Erstellung EINES IV-Aufruf's für alle Bildchen) kein Problem [hätte das dann ja zur Not auch manuell machen können], aber da ich (weit) mehr Bildchen in beide Richtungen habe wird die Kommandozeile (für IV und erst recht für den CMD-Interpreter) zu lang,- auch wenn ich die Dateinamen auf nur noch 4+".jpg" Zeichen begrenze.
          In meiner Variante "verbinde" ich deshalb zu Beginn die ersten beiden Bildchen einer Zeile, dann das erzeugte mit dem 3., dann wieder das erzeugte mit dem 4., usw. (natürlich für die erzeugten [Teil]-Bilder nur in verlustfreiem Format). - Und kann so 2 vorgegebene Zähler (Bildanzahl in einer Zeile + Anzahl der Zeilen) durchlaufen lassen. Schließlich für die (jetzt erzeugten) Zeilen dann eine zusätzliche Schleife um das Gesamtbild zu erstellen.

          Und; wie schon geschrieben: wenns nur Stadtplankacheln wären (sind ja i.d.R. alle gleich groß), ist es mit XnView sehr leicht automatisch machbar. Bei mir jedoch ist die jew. letzte Spalte/Zeile in einer anderen Breite/Höhe. Da aber IV die Kacheln einfach nur neben-/untereinander setzt, wünschte ich mir nur den Zusatz beides gleichzeitig automatisch (mit einem alphabetisch vorsortierten Bilderverzeichnis) erledigen zu lassen, also nur noch die Anzahl der waagerechten UND senkrechten Bilder anzugeben.

          ...immernoch grübelnd grüßend,
          Last edited by KC-Kid; 19.12.2009, 02:28 AM.
          KC-Kid, time is bit -
          ______ it's byte time!

          Comment


            #6
            Wenn Du mit CMD arbeiten willst, würdest Du in einem eigenen Batch jeweils eine Zeile zusammenstellen und in einem weiteren Batch die Zeilen verbinden, sprich, dort den Zeilenerstellbatch zig mal aufrufen. Damit umgeht man das Problem der beiden verschachtelten FOR-Schleifen in einem Batch.

            Erheblich mächtiger als der Befehlsumfang des Kommandozeileninterpreters ist halt VB in Office und ja, man start Office nur, um das Makro auszuführen, das zig mal den IV in den besprochenen beiden Schleifen aufruft. Da man meist ein Office-Produkt installiert hat, brauch man nur die dortige VB-Umgebung. Dazu mußt Du kein MSDN installiert haben.

            Du schreibst, daß ein Dateiname 8 Zeichen lang sein könnte. Wenn wir also das Zeichen für das Komma hinzufügen, waren wir bei 100 Dateien bei 900 Zeichen + IV-Programmname etc. Das macht VB locker mit. Also erzeugst Du mit der einer Schleife nur den einen einzigen IV-Aufruf, um eine Zeile zu erzeugen. In der zweiten Schleife wird der eine einzige IV-Aufruf zusammengestellt, um alle Zeilendateien auf einmal zu verbinden. Auch das sollte mit VB gehen.
            Last edited by WeBu; 21.12.2009, 03:01 PM.
            Wenn Windows die Antwort ist, wie blöd war dann die Frage?
            Windows ist nicht die Antwort, sondern die Frage!
            Und Nein lautet die Antwort!

            Comment

            Working...
            X