imgselect.pl
--help
| --version
imgselect.pl
[ --verbose
... | --no_verbose
]
[ --in
IN
] [ --out
OUT
]
[ --exclrestr
| --no_exclrestr
] [ --exclcat
| --no_exclcat
]
[ --multiple
MULTIPLE
] [ --slippy
SLIPPY
]
[ --left
LEFT
] [ --right
RIGHT
] [ --behind
BEHIND
] [ --legs
LEGS
] [ --total
TOTAL
]
[ --catchall
CATCHALL
]
[ --text
TEXT
--prob
PROB
]... [ --mode
{ all | any | first } ]
[ --xslt
XSLT
]
--help
Gibt eine kurze Hilfe aus.
--version
Gibt kurze Hinweise zum Programm und die Version aus.
--verbose
Verarbeitete Dateien und Bildverweise werden nach STDOUT ausgegeben.
--no_verbose
Diese Option hebt die Wirkung der Option --verbose
auf.
--in
IN
IN
ist der Pfad der Eingabedatei (Bildergeschichte). Wenn IN
ein Verzeichnis ist, wird
angenommen.IN
/story.xml
Voreingestellt ist story.xml
.
--out
OUT
OUT
ist der Pfad der Ausgabedatei (Bilderauswahl). Die Ausgabedatei ist eine XML-Datei des Namensraums http://herbaer.de/xmlns/20100205/imgselect
(s. imgselect.rng
).
--exclrestr
Verweise auf Bilder mit Einschränkungen (restr
-Attribut) werden ignoriert (voreingestellt).
--no_exclrestr
Diese Option hebt die Wirkung der Option --exclrestr
auf: Bilder mit Einschränkungen werden wie andere Bilder behandelt.
--exclcat
Verweise auf Bilder in Katalog-Abschnitten (section
/role
= "cat
") oder in privaten Abschnitten (section
/role
= "private
") werden ignoriert (voreingestellt).
--no_exclcat
Diese Option hebt die Wirkung der Option --exclcat
auf: Bilder in Katalog-Abschnitten und in privaten Abschnitten werden in die Auswahl einbezogen.
--multiple
MULTIPLE
MULTIPLE
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, das denselben Titel (jpg/@alt
) wie das des unmittelbar vorhergehende Bild hat.
--slippy
SLIPPY
SLIPPY
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) das Wort "Beine"
enthält, dem später weder "Kleid"
noch "Rock"
, aber "Badeanzug"
, "Body
" oder "Slip"
folgt.
--left
LEFT
LEFT
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) die auf einander folgenden Wörter "von links"
enthält. Der spezielle Wert "-"
bedeutet, dass die Wortfolge "von links"
im Bildtitel die Auswahl nicht betrifft.
--right
RIGHT
RIGHT
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) die auf einander folgenden Wörter "von rechts"
enthält. Der spezielle Wert "-"
bedeutet, dass die Wortfolge "von rechts"
im Bildtitel die Auswahl nicht betrifft.
--behind
BEHIND
BEHIND
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) die auf einander folgenden Wörter "von hinten"
enthält. Der spezielle Wert "-"
bedeutet, dass die Wortfolge "von hinten"
im Bildtitel die Auswahl nicht betrifft.
--legs
LEGS
LEGS
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) das Wort "Beine"
enthält. Der spezielle Wert "-"
bedeutet, dass die Wortfolge "Beine"
im Bildtitel die Auswahl nicht betrifft.
--total
TOTAL
TOTAL
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) die das Wort "total"
enthält. Der spezielle Wert "-"
bedeutet, dass das Wort "total"
im Bildtitel die Auswahl nicht betrifft.
--catchall
CATCHALL
CATCHALL
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel (jpg/@alt
) kein anderes Kriterium zur Festlegung einer Pseudowahrscheinlichkeit erfüllt. Der spezielle Wert "-"
bedeutet, dass es kein letzte Auswahl gibt, die alle Bilder betrifft.
--text
TEXT
Zusätzliche Kriterien für die Zuordnung von Bildtiteln zu Pseudowahrscheinlichkeiten.
Wenn ein Bildtitel den Text TEXT
enthält, wird das Bild mit der Pseudowahrscheinlichkeit PROB
ausgewählt. Es können mehrere Werte TEXT
und PROB
angegeben werden, aber es sollten genau so viel TEXT
-Werte wie PROB
-Werte angegeben werden, denn überzählige TEXT
- oder PROB
-Werte werden ignoriert.
--prob
PROB
PROB
ist die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, dessen Titel den Text TEXT
enthält. Der erste TEXT
entspricht der ersten PROB
, der zweite TEXT
der zweiten PROB
usw. Überzählige TEXT
- oder PROB
-Werte werden ignoriert.
Der spezielle PROB
-Wert "-"
bedeutet, dass der zugehörige TEXT
im Bildtitel für die Bildauswahl nicht relevant ist.
--mode
{all
|any
|first
}Die Suchmuster werden der Reihe nach in einem Bildtitel gesucht, Zuerst „von links
”, „von rechts
”, „von hinten
” und „total
”, dann die TEXT
-Werte, zuletzt der „Allesfänger”, der zu jedem Bildtitel passt. Wenn zu einem Suchmuster statt einer Pseudowahrscheinlichkeit der spezielle Wert "-"
in der Befehlszeile angegeben ist, dann wird dieses Muster ignoriert.
Wenn ein Suchmuster zu einem Bildtitel passt, dann wird eine Pseudozufallszahl „gezogen”, die im Intervall [0, 1)
gleichverteilt ist. Ein Suchmuster „sticht”, wenn die gezogene Pseudozufallszahl nicht größer ist als die Pseudowahrscheinlichkeit zum Suchmuster. Der Wert der Option --mode
legt fest, wann ein Bild ausgewählt wird:
all
Ein Bild wird ausgewählt, wenn wenigstens ein Suchmuster passt und alle passenden Suchmuster „stechen”.
any
Ein Bild wird ausgewählt, wenn wenigstens ein passendes Suchmuster „sticht”.
first
Ein Bild wird ausgewählt, wenn ein Suchmuster passt und das erste passende Suchmuster „sticht”.
Voreingestellt ist "first"
.
--xslt
XSLT
..Wenn XSLT
nicht "none"
ist, wird eine xml-stylesheet
-Verarbeitungsanweisung in die Ausgabedatei OUT
geschrieben, die auf XSLT
verweist.
Das Programm imgselect.pl
liest die "Bildergeschichte" IN
(XML-Datei des Namensraums http://herbaer.de/xmlns/20080705/imgshow
) und erstellt die Bildauswahldatei OUT
mit Bildern, die automatisch pseudozufällig ausgewählt sind. Die Pseudowahrscheinlichkeit, mit der ein Bild ausgewählt wird, hängt vom Bildtitel (jpg/@alt
) ab.
HB_SelectImages
Das Package HB_SelectImages
kapselt einen SAX-Parser und SAX-Behandler zur Auswahl von Bildern.
my $selector = new HB_SelectImages ($probabilities, $args); $selector -> select ($filename_story); $selector -> write_xml ($filename_imageselect, $args);
new HB_SelectImages
($reprob
, $args
)$reprob ist eine ARRAYREF, deren Einträge ARRAYREFs sind. Deren erste Komponente ist ein regulärer Ausdruck, der auf Bildtitel (jpg/@alt
) angewendet wird. Die zweite Komponente ist eine Pseudowahrscheinlichkeit, mit der das Bild, auf dessen Titel der reguläre Ausdruck passt, ausgewählt wird. Die weiteren Komponenten sind optional. Wenn sie fehlen, verhält sich das Programm so, als wäre ihr Wert 0. Die dritte Komponente ist die Zahl der Bildverweise, auf deren Titel der reguläre Ausdruck passt. Die vierte Komponente zählt die Bildverweise, die davon tatsächlich ausgewählt werden. Abhängig vom Auswahlmodus können beide Zähler dasselbe Bild mehrmals zählen.
$args
ist die HASHREF der Befehlszeilen-Argumente.
select
($filename_story
)Diese Methode wählt aus den Bildverweisen in der Datei $filename_story
Bilder aus. $filename_story
ist der Dateipfad einer Bildergeschichte, einer XML-Datei des Namensraums http://herbaer.de/xmlns/20080705/imgshow
.
write_xml
($filename_imageselect
, ($args
)$filename_imageselect
ist der Dateipfad der Bildauswahldatei, einer XML-Datei des Namensraums http://herbaer.de/xmlns/20100205/imgselect
.
$args
ist die HASHREF der Befehlszeilen-Argumente.
Die Ausgabedatei $filename_imageselect
enthält die ausgewählten Bilder mehrerer Bildergeschichten, wenn $selector ->
mehrmals für verschiedene Dateien aufgerufen wird.select
build_reprobs
Die Funktion build_reprobs
erstellt die ARRAYREF der Bildtitel-Muster und Pseudowahrscheinlichkeiten, die als Parameter an new HB_SelectImages
übergeben wird.
Das Programm ist mit 5.10 entwickelt. Es benutzt die Standard-Module encoding
, Cwd
, Fcntl
, File::Spec::Functions
und POSIX
, das CPAN-Module XML::SAX::ParserFactory
und das Modul read_args
. Es muss auch ein SAX-Parser eingerichtet sein, den XML::SAX::ParserFactory
findet.