imgselect.pl


Übersicht

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 ]

Optionen

--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 IN/story.xml angenommen.

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.

Beschreibung

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.

Wesentliche Funktionen und Programmteile

package 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.

$selector -> 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.

$selector -> 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 -> select mehrmals für verschiedene Dateien aufgerufen wird.

build_reprobs

Die Funktion build_reprobs erstellt die ARRAYREF der Bildtitel-Muster und Pseudowahrscheinlichkeiten, die als Parameter an new HB_SelectImages übergeben wird.

Software-Voraussetzungen

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.