Prty::TimeLapse::RangeDef - Range-Definitionen
Prty::Hash
# Klasse laden use %CLASS; # Instantiiere Range-Defintions-Objekt $trd = Prty::TimeLapse::RangeDef->new('/my/timelapse/dir'); # Liste der Clip-Bezeichner @keys = $trd->clipKeys; # Hash der Clip-Properties $h = $trd->clipProperties; # Liste der Range-Bezeichner @keys = $trd->rangeKeys; # Bildfolgen-Ausdruck zu einem Clip- oder Range-Bezeichner $expr = $trd->expression($key);
Ein Objekt der Klasse kapselt die Definitionen aus einer oder mehrerer range.def-Dateien, die sich innerhalb eines Verzeichnisbaums befinden.
Eine range.def-Datei besteht aus Zeilen folgender Art:
Leerzeile (leer oder nur Whitespace)
Kommentar-Zeile (# als erstes non-Whitespace-Zeichen)
Clip-Definitionszeile (beginnt mit "Clip:")
Range-Definitionszeile (KEY EXPR)
Range-Fortsetzungszeile (Zeile mit Whitspace am Anfang, gefolgt von einer Fortsetzung von EXPR)
Leerzeilen und Kommentarzeilen werden überlesen. Ein Kommentar am Ende einer Zeile wird entfernt.
Eine Clip-Definition hat den Aufbau:
Clip: KEY PROPERTY=VALUE ...
KEY ist der Name/Bezeichner des Clip. Die Property-Liste PROPERTY=VALUE ... ist optional.
KEY
PROPERTY=VALUE ...
Folgende Clip-Properties können vereinbart werden:
Dauer des Nachspanns mit dem Ende-Frame in Sekunden. Ein negativer Wert setzt die (Mindest-)Dauer des Clip fest.
Anzahl Bilder pro Sekunde.
Nur jedes N-te Bild ist Teil des Clip.
Die Bildfolge wird umgedreht.
Eine Range-Definition besteht aus einem Namen/Bezeichner KEY und einem Bildfolgen-Ausdruck EXPR. Diese sind durch Whitspace getrennt. Der Ausdruck EXPR darf sich über mehrere Zeilen erstrecken, wenn die Folgezeilen mit Whitespace eingeleitet werden.
Ein Bildfolgen-Ausdruck EXPR besteht aus 0 oder mehr Teilausdrücken, die mit Whitespace voneinender getrennt sind. Teilausdrücke sind:
N .................. Einzelbild N N-M ................. Bildnummern-Bereich N bis M KEY ................. die Bilder des Clip oder Range KEY all ................. sämtliche Bilder des Zeitraffer-Verzeichnisses used ................ die Bilder aller Ranges unused .............. die Bilder, die zu keinem Range gehören junk ................ Bilder von unused, die per {} ausgesondert sind duplicate(N,EXPR) ... jedes Bild in EXPR wird N-mal dupliziert randomize(N,EXPR) ... zufällige Auswahl von N Bildern aus Vorrat EXPR repeat(N,EXPR) ...... Bildfolge EXPR wird N-mal wiederholt reverse(EXPR) ....... Bildfolge EXPR wird umgedreht {EXPR} .............. die Bilder aus EXPR werden als Junk betrachtet [EXPR] .............. Teilsausdruck EXPR wird nicht berücksichtigt
Betrachten wir all, used, unused, junk als Mengen, also Bildvorräte ohne Berücksichtigung der Reihenfolge, gilt:
all
used
unused
junk
all ist die Vereinigung von used und unused
used und unused sind disjunkt
junk ist eine Teilmenge von unused
# Bilder 1 .. 58 Clip: autofahrt framerate=8 strecke1 1-23 {24-30} strecke2 31-58
$trd = $class->new($dir);
Instantiiere ein Range-Definitions-Objekt aus den range.def-Dateien in der Verzeichnisstruktur $dir und liefere eine Referenz auf dieses Objekt zurück. Existiert keine range.def Datei, wird kein Objekt instantiiert und undef geliefert.
undef
Pfad zu Verzeichnisstruktur
Referenz auf das Range-Definitions-Objekt oder undef
@files|$fileA = $trd->files;
Liefere die Liste der Range-Dateien in sortierter Reihenfolge.
Liste von Datei-Pfaden. Im Skalarkontext liefere eine Referenz auf die Liste.
@keys|$keyA = $trd->clipKeys;
Liefere die Liste aller Clip-Bezeichner in der Reihenfolge ihrer Definition in der Range-Datei.
Liste von Clip-Bezeichnern. Im Skalarkontext liefere eine Referenz auf die Liste.
$h = $trd->clipProperties($key);
Liefere eine Referenz auf den Hash mit den Properties des Clip $key.
Referenz auf Restricted-Hash
@keys|$keyA = $trd->rangeKeys;
Liefere die Liste aller Range-Bezeichner in der Reihenfolge ihrer Definition in der Range-Datei.
Liste von Range-Bezeichnern. Im Skalarkontext liefere eine Referenz auf die Liste.
$n = $trd->rangeCount;
Liefere die Anzahl der Range-Bezeichner. Diese Methode kann genutzt werden um festzustellen, ob Ranges definiert sind.
Integer >= 0
$expr = $trd->expression($key);
Liefere den Bildfolgen-Ausdruck des Clip- oder Range-Bezeichners $key. Geklammerte Teile sind nicht enthalten (siehe Abschnitt "Syntax").
Bildfolgen-Ausdruck (String)
1.111
Frank Seitz, http://fseitz.de/
Copyright (C) 2017 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.