Scroll to navigation

Pamundice-Benutzerhandbuch(1) General Commands Manual Pamundice-Benutzerhandbuch(1)

BEZEICHNUNG

pamundice - fügt ein Raster von Bildern (Kacheln) zu einem Bild zusammen

BEISPIEL

     $ pamdice meinBild.ppm -outstem=meinBild_Teil -width=10 -height=8
     $ pamundice meinBild_Teil_%1d_%1a.ppm -across=10 -down=8 >meinBild.ppm
    $ pamundice meinBild_Teil_%2a -across=13 -hoverlap=9

Siehe pamdice(1) für weitere Beispiele.

ÜBERSICHT

pamundice

{ [-across=n]

[-down=n] , -indexfile=pamdateiname }

[-hoverlap=Pixel]

[-voverlap=Pixel]

[-verbose]

{Eingabe_Dateiname_Muster, -listfile=Textdateiname}

Sie können Optionen auf ihren kürzesten eindeutigen Präfix abkürzen. Sie können zur Kennzeichnung von Optionen auch zwei anstatt nur eines Bindestrichs verwenden. Sie können den Namen der Option und ihren Wert durch Leerzeichen anstatt eines Gleichheitszeichens trennen.

BESCHREIBUNG

Dieses Programm ist Teil von netpbm(1).

pamundice liest als Eingabe eine Reihe von Netpbm-Bildern und setzt sie als ein Raster von Kacheln zu einem einzigen Ausgabebild des selben Typs auf der Standardausgabe zusammen.

Optional können Sie die Stücke überlappen lassen.

Die Bilder können in Dateien sein, deren Namen angeben, wo sie in der Ausgabe platziert werden sollen (z.B. könnte »meinBild_Teil_03_04« das Bild sein, das in Reihe 3, Spalte 4 eingefügt wird. Siehe das Argument Eingabe_Dateiname_Muster). Die Bilder könnten auch unter der Verwendung der Option -listfile in einer Datei aufgezählt sein.

Alle Eingabebilder müssen dasselbe Format (PAM, PPM, usw.) und den selben »Maxwert« haben. Im Fall von PAM müssen die Auflösung und der »Tuple-Type« identisch sein. Alle Bilder in einer horizontalen Reihe von Kacheln müssen die gleiche Höhe haben. Alle Bilder in einer vertikalen Spalte von Kacheln müssen die gleiche Breite haben. Es ist jedoch nicht notwendig, dass jede horizontale Reihe die selbe Höhe, oder jede vertikale Spalte die selbe Breite hat.

pamdice(1) ist die Inverse von pamundice. Sie können pamundice verwenden, um ein Bild wieder zusammenzusetzen, das mit pamdice(1) zerschnitten worden ist. Sie können pamdice(1) verwenden, um die Kacheln eines Bildes wieder herzustellen, das mit pamundice erzeugt worden ist. Dazu müssen die ursprünglichen horizontalen Reihen mit Ausnahme der untersten Reihe die gleiche Höhe haben. Ebenso müssen die ursprünglichen vertikalen Spalten mit Ausnahme der letzten rechten Spalte die gleiche Breite haben.

Eine Anwendung besteht darin, ein Bild stückweise zu verarbeiten, wenn das gesamte Bild zu groß zur Verarbeitung ist. Sie könnten beispielsweise ein Bild haben, das so groß ist, dass eine Bildverarbeitung es nicht komplett in den Speicher einlesen kann, oder dass die Verarbeitung sehr langsam abläuft. Mittels pamdice(1) können Sie es in kleine Stücke aufteilen, diese einzeln verarbeiten, und die Ergebnisse mittels pamundice wieder zusammensetzen.

Selbstverständlich können Sie pamundice auch dazu verwenden, verschiedene Arten von schachbrettartigen Bildern zusammenzusetzen. Sie können beispielsweise ein Programm schreiben, das ein Schachbrett mittels Berechnung des Bildes jedes einzelnen Quadrates erzeugt, um diese Bilder mit pamundice zu einem Brett zusammenzufügen.

pamcat(1) ist eine Alternative, Bilder in eine Richtung (d.h. zu einer horizontalen Reihe oder einer vertikalen Spalte) zusammenzufügen. pamcat(1) stellt alternative Arten zur Erkennung von Eingabebildern bereit: Sie können sie seriell auf der Standardeingabe bereitstellen oder sie über ihren Namen als Befehlszeilenargumente auflisten.

Um Photographien stückweise zusammenzusetzen verwenden Sie pnmstitch(1) anstatt pamundice. pnmstitch(1) kann ermitteln, wo sich Stücke überlappen, selbst dann, wenn sie sich nicht genau vertikal oder horizontal überlappen.

Mit pnmtile(1) lässt sich ein Bild erzeugen, das dieselbe Kachel in einem Raster mehrfach wiederholt.

pnmindex(1) leistet etwas ähnliches wie pamundice; es erlaubt Ihnen, eine Reihe von kleinen Bildern in einem Raster zu einem großen Bild zusammenzufassen. Allerdings besteht die Anwendung darin, ein Übersichtsbild der Eingabebilder zu erzeugen. Dafür lässt es beispielsweise etwas Platz zwischen den Bildern und verfügt über Beschriftung.

ARGUMENTE

Soweit Sie nicht die Option -listfile verwenden, gibt es ein verpflichtendes nicht-optionales Argument Eingabe_Dateiname_Muster. Dieses Argument sagt pamundice, welche Dateien die Eingabekacheln beinhalten.

pamundice liest die Eingabebilder aus Dateien, deren Namen angeben, wo sie in dem zusammengesetzten Ausgabebild platziert sind. Zum Beispiel könnte »Kachel_00_05.ppm« die sechste Kachel in der ersten Reihe, und »Kachel_04_01.ppm« die zweite Kachel in der fünften Reihe sein.

(Siehe aber -indexfile, wodurch die Kacheln so umgeordnet werden können, so dass die Datei, deren Namen anzeigt, dass sie die 6. Kachel vertikal in der ersten horizontalen Reihe sei, tatsächlich durch pamundice an einer beliebigen Position in seiner Ausgabe angeordnet werden könnte).

Sie können diese Daten nicht über die Standardeingabe eingeben. Außerdem müssen Dateien so beschaffen sein, dass pamundice sie schließen und erneut öffnen kann, um das selbe Bild ein zweites mal zu lesen. (Zum Beispiel ist eine reguläre Datei geeignet; eine benannte Pipe ist es wahrscheinlich nicht).

Eingabe_Dateiname_Muster ist ein Muster im Stil von printf. (Siehe das Unterprogramm printf aus der Standard-C-Bibliothek). Im obigen Beispiel wäre es tile_%2d_%2a.ppm. Die einzig möglichen Umsetzungskennzeichner sind:

»abwärts«: Die Zeilennummer, mit 0 beginnend.

»seitwärts«: Die Spaltennummer, beginnend mit 0.

%
Das Prozent-Zeichen »%«.

Die Zahl zwischen dem »%«-Zeichen und dem Umsetzungskennzeichner ist die Genauigkeit. Deren Angabe ist erforderlich und beschreibt, wie viele Zeichen vom Dateiname mit dieser Umsetzung beschrieben sind. Die Zeilen- und Spaltennummern werden, wenn nötig, mit führenden Nullen aufgefüllt.

Das Beispiel tile_%2d_%2a.ppm bedeutet damit, dass Sie um den Namen der Datei zu erhalten, welche die Kachel der Zeile 0 und der Spalte 5 enthält wie folgt vorgehen:

  • die »%2d« durch die Zeilennummer als zweistellige Dezimalzahl ersetzen: »00«

  • die »%2a« durch die Spaltennummer als zweistellige Dezimalzahl ersetzen: »05«

Beachten Sie, dass dieses Muster Dateinamen beschreibt, die pamdice(1) erzeugt. Nur die Genauigkeit kann größer oder kleiner sein. (Siehe die Option -numberwidth von pamdice(1).)

OPTIONEN

Zusätzlich zu den Optionen, die alle auf libnetpbm-basierenden Programme gemeinsam haben (insbesondere -quiet, siehe gemeinsame Optionen ), akzeptiert pamundice die folgenden Befehlszeilenoptionen:

Dies ist die Anzahl der Kacheln in der Horizontalen, d.h. die Anzahl der Kacheln pro Zeile, oder die Anzahl der Spalten.

Dies können Sie nicht zusammen mit -indexfile angeben.

Die Voreinstellung ist 1.

Dies ist die Anzahl der Zeilen in der Senkrechten, d.h. die Anzahl der Kacheln je Spalte, oder die Anzahl der Zeilen.

Dies können Sie nicht zusammen mit -indexfile angeben.

Die Voreinstellung ist 1.

Dies ist die Anzahl der Pixel, in der die Kacheln horizontal überlappen. pamundice schneidet von jeder Kachel diese Anzahl von Pixeln auf der rechten Seite ab, bevor sie an das benachbarte Bild rechts angefügt wird. Die Kacheln entlang der rechten Seite bleiben vollständig.

Keines der Eingabebilder darf schmaler als diese Anzahl sein.

Beachten Sie, dass dies den Effekt der gleichen Option -hoverlap von pamdice(1) rückgängig macht.

Die Voreinstellung ist Null, keine Überlappung.

Dies ist analog zu -hoverlap, nur dass pamundice die untere Kante jedes Bildes abschneidet, bevor es an das Bild darunter angefügt wird.

Diese Option benennt eine Datei, die alle Namen der Eingabedateien beinhaltet. Dies ist die Alternative zur Angabe eines Musters für Dateinamen als ein Argument.

Die angegebene Datei enthält einen Dateinamen pro Zeile. Jede Datei enthält
das Bild einer Kachel. Die Reihenfolge ist Zeile für Zeile, von oben nach
unten, von links nach rechts. Damit enthält die erste Datei die Kachel
oben links, die zweite Datei die Kachel rechts davon und so weiter. Die
Anzahl der Zeilen in der Datei muss gleich der Anzahl der Kacheln in der
Ausgabe sein, dem Produkt der Werte von -across und -down.

Die Dateinamen sind für pamundice bedeutungslos. Sie können die selbe
Datei mehrfach aufführen, um identische Kacheln in der Ausgabe zu
erhalten.

Falls Sie die Kacheldateien mit pamdice(1) erstellen, können Sie die Option -listfile von pamdice(1) verwenden, um eine geeignete Listendatei zum Wiederzusammenbau der Kacheln an die gleiche Position, die sie im ursprünglichen großen Bild hatten, zu erstellen.

Dies können Sie nicht zusammen mit -indexfile angeben.

Diese Option ist in Netpbm 10.90 (März 2020) hinzugekommen.

Diese Option benennt eine Datei, die ein pam(5)-Bild enthält, das mitteilt, welche Kacheldateien wo in der zusammengebauten Ausgabe angeordnet werden müssen. Siehe die Option -indexfile von pamfile(1) zu Details des Formats.

Typischerweise wird ein Indexbild zur Verwendung mit pamundice erstellt, indem die Option -indexfile von pamdice(1) verwandt wird und dann das entstehende Indexbild mit anderen Netpbm-Werkzeugen weiterverarbeitet wird.

Während die Musterwert im Indexbild als horizontale und vertikale Postionen in einem ursprünglich größeren Bild definiert sind und so auch dort dokumentiert sind, weist pamundice den Zahlen tatsächlich keinerlei Bedeutung zu -- sie sind einfach Ersetzungen für zwei Variablen im Eingabedateinamenmuster (das als Programmargument angegeben wird).

Der Maximalwert des Indexbildes ist irrelevant, außer das kein Muster im Indexbild größer als dieser sein kann.

Die Tiefe der Indexdatei muss mindestens zwei sein (horizontal und vertikal), aber das Programm ignoriert alle zusätzlichen Ebenen.

Das Programm ignoiert den Tupel-Typ.

Falls Sie diese Option nicht angeben, wird die Position einer Kachel in der Ausgabe direkt durch den Spalten- und Zeilen-Anteil im Dateinamen der Kachel bestimmt oder, falls Sie -listfile angeben, durch die Reihenfolge, in der die Kacheldateinamen in der Listendatei aufgeführt sind.

Sie können dies nicht zusammen mit -listfile, -down oder -across angeben.

Diese Option ist in Netpbm 11.10 (März 2025) hinzugekommen.

Gibt an, dass Ausgaben über die Verarbeitung auf der Standardfehlerausgabe ausgegeben werden sollen.

Aufruf

Es folgt ein Beispiel der Verwendung einer Listendatei:


Beispielverwendung von -listfile: pamdice -width=100 -height=100 -outstem=Bildteil -listfile=Listendatei \ img.ppm pamundice -listfile=Listendatei -across=6 -down=4 > Bildkopie.ppm

Beachten Sie, dass Sie im obigen Beispiel irgendwie wissen müssen, dass Sie 6 Zeilen und 4 Spalten von pamdice(1) haben und dann die korrekten Optionen -across und -down bei pamundice angeben. Ein kleiner Fehler ruiniert den Prozess. Es ist besser, -indexfile zu verwenden:


pamdice -width=100 -height=100 -outstem=Bildteil \
-numberwidth=3 -indexfile=index.pam Bild.pam
pamundice -indexfile=index.pam Bildteil_%3d_%3a.pam > Bildkopie.pam

Es folgt ein Beispiel für das Umdrehen eines großen Bildes. pamflip(1) benötigt oft das gesamte Bild auf einmal in echtem Hauptspeicher, das bei sehr großen Bildern unmöglich oder unpraktisch sein kann. Diese Methode erledigt es in kleineren Stücken und benötigt damit weniger Speicher:


Beispiel für -indexfile mit pamflip-Aktion:
pamdice -width=2500 -height=2500 -outstem=Kachel \ -numberwidth=3 -indexfile=index.pam riesigesBild.ppm
# Umdrehen jeder Kachel for tile in Kachel_???_???.ppm do pamflip -r180 $tile > ${Kachel%.ppm}.gedreht.ppm done
# Indexdatei umdrehen - Einfache Anwendung der gleichen Umdreh-Aktion pamflip -r180 index.pam > index_gedreht.pam
pamundice -indexfile=index_gedreht.pam Kachel_%3d_%3a.gedreht.ppm \ > riesigesBild_gedreht.ppm

GESCHICHTE

pamundice ist in Netpbm 10.39 (Juni 2007) hinzugekommen. Davor war pnmcat(1) der beste Ersatz.

SIEHE AUCH

pamdice(1), pamcat(1), pnmindex(1), pnmtile(1), pnm(1), pam(1)

URSPRUNG DES DOKUMENTS

Diese Handbuchseite wurde vom Netpbm-Werkzeug »makeman« aus der HTML-Quelle erstellt. Das Hauptdokument befindet sich unter

http://netpbm.sourceforge.net/doc/pamundice.html

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Christoph Brinkhaus <c.brinkhaus@t-online.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

8. Februar 2025 Netpbm-Dokumentation