de | en

AlbumGen

Das Projekt startete, um die zahlreichen, privaten Fotos innerhalb der Familie zugänglich zu machen. Daraus entwickelte sich dann eine Verwaltung der Fotos, wobei das Hauptaugenmerk auf der Übersicht und dem einfachen Finden von Fotos lieft.

Das Grundprinzip der Anzeige besteht darin, dass die Fotos entsprechend ihrem Aufnahmedatum einsortiert werden. Weiterhin gibt es eine Jahresansicht:

in welcher die Tage mit Fotos entsprechend markiert und damit direkt sichtbar sind.

Jeder Tag hat desweiteren eine Übersicht über die dann aufgenommenen Fotos:

Schlussendlich gibt es noch die Anzeige für das einzelne Foto:

Tage und Fotos können eine Beschreibung erhalten, die entsprechend angezeigt wird.

Das Album selbst nutzt HTML zur Anzeige, ist also mit jedem Browser nutzbar. Dadurch kann das Album auch einfach im Internet anderen zugänglich gemacht werden (was der ursprüngliche Gedanke bei dem Projekt war).

Schlagworte

Jedem Datum und jedem Foto können Schlagworte (tags) zugeordnet werden. Datums-bezogene Schlagworte gelten dabei auch für alle Fotos, die dem Datum zugeordnet sind.

In der HTML-Oberfläche wird eine übersicht über alle Schlagworte dargestellt, wobei die Schriftgröße abhängig von der Häufigkeit der Schlagworte ist. Zu jedem Schlagwort wird desweiteren eine Auflistung der Kalendertage bzw. Fotos angezeigt.

Ausserdem können Schlagworte verknüpft werden (“und”, “oder”, “nicht”), um gezielt zu suchen (aktuell nur auf der Kommandozeile).

Foto-Datenbank

Alle Informationen zu den Fotos, d.h. Anordnung, Beschreibung und Schlagworte, sind in der Datei PHOTOS.xml abgelegt, welche sich im jeweiligen Datumsordner befindet. Die Ordner befinden sich hierbei im übergeordneten Jahres-Ordner und haben das Namensformat MM-DD mit Monat und Tag.

Das Format der Datei PHOTOS.xml ist wie folgt:

<album>
  <title> Titel </title>
  <tags> Datumsschlagworte </tags>
  <date> Datum </date>
  <prev> nächstes Datum </prev>
  <next> vorheriges Datum </next>
  <photo>
    <file> Originalfotodatei </file>
    <desc> Fotobeschreibung </desc>
    <orientation> portrait oder landscape </orientation>
    <format>3x2 oder 4x3 oder 16x9 </format>
    <tags> Schlagwort1, Schlagwort2, ... </tags>
  </photo>

  <photo>
   ...
  </photo>
  
</album>

Im Normalfall sind manuelle Änderungen an der Datei nicht nötig, aber jederzeit möglich.

Bedienung

HTML-Oberfläche

Neben der eigentlichen Anzeige, sind die Bedienungselemente (links oben) auf ein Minimum reduziert. Innerhalb der Jahresübersicht kann man zum vorherigen bzw. nächsten Jahr wechseln. Analog gelangt man in der Tagesübersicht zum vorherigen bzw. nächsten Tag im Album. Bei der Fotoansicht wechselt man zum vorherigen bzw. nächsten Foto.

Mit dem Haus-Symbol gelangt man stets eine Ebene nach oben, etwa von der Tages- zur Jahresübersicht.

Fotoimport

Der Import von neuen Fotos erfolgt über das Programm import. Folgende Optionen sind vorhanden:

  • -c, –copy

    Kopiere Originalfoto ins Fotoalbum

  • -f, –force [html|lores|thumb|overwrite|all]

    Erzwingt Überschreiben von vorhandenen Dateien (HTML, Fotos, Thumbnails, …)

  • -i, –ignore

    Ignoriere EXIF-Daten in Dateien

  • -t, –title <title>

    Setze Titel der Seite.

  • -v, -verbosity <n>

    Erhöhe Geschwätzigkeit des Programmes

Die Fotos können entweder als Dateiliste angegeben werden, z.B.

> import foto1.jpg, foto2.jpg ...

oder per Pfad:

> import meine_fotos1/ meine_fotos2/ ...

In letzterem Fall werden alle Fotos in den Verzeichnissen importiert.

Erster Import

Beim ersten Einsatz sollte ein neuer Ordner für das Fotoalbum erzeugt werden und die kompletten Quellen hineinkopiert werden. Anschließend können die ersten Fotos importiert werden:

> mkdir fotoalbum
> cd fotoalbum
> cp -a <pfad zu albumgen> .
> albumgen/bin/import <pfad zu fotos>/

Videos

Es werden auch Videos unterstützt. Diese werden in Ogg/Theora umgewandelt (webvideo) und in der Übersicht ein animiertes Gif erzeugt. Die Unterstützung ist aber recht einfach und noch nicht besonders robust.

GAlbum

Für die weitere Bearbeitung des Fotoalbums ist ein grafisches Programm vorhanden:

> galbum

Hierüber können die Titel, Beschreibungen und Schlagworte geändert werden.

Schlagworte

Um über die Schlagworte nach Fotos zu suchen steht das Programm

> searchtags

zur Verfügung. Hierfür muss zunächst mittels

> searchtags -g

die Datenbank generiert werden. Anschließend kann ein Schlagwort oder eine logische Verknüpfung von Schlagwörtern als Parameter für die Suche genutzt werden:

> searchtags "wort1 und wort2 und nicht wort3"

Dabei kann die Ausgabe als einfach Liste (plain) oder im HTML-Format erfolgen:

> searchtags -o html "wort1 und wort2 und nicht wort3"

Um die Übersicht der Schlagworte im eigentlichen Fotoalbum zur generieren wird das Kommando

> gentags

genutzt.

Verschiedenes

Es gibt ausserdem noch weitere Programme mit Spezialaufgaben.

> genindex

erzeugt den Index der Jahre.

> genyear <Jahr>

erzeugt das Album für das jeweilige Jahr.

Schließlich kann mittels

> update 

das Album im aktuellen Verzeichnis aktualisiert werden, etwa, falls die Angaben per Hand geändert wurden.

Quelltext

AlbumGen ist in Python (GTK für die Oberfläche) geschrieben. Allerdings gibt es diverse Abhängigkeiten zu weiteren Bibliotheken oder externen Programmen, etwa für die Bildmanipulation. Diese lauten:

  • EXIF-py
  • Py-GTK
  • Py-Image
  • Py-Sqlite2
  • Py-Parsing
  • ImageMagick (für convert)
  • FFMpeg (für Videos)
  • gifsicle (animierte Gifs)

EXIF ist bereits enthalten. Die übrigen Packete müssten für Python nachinstalliert werden.

Die Entwicklung von AlbumGen erfolgte recht sporadisch, je nachdem, was benötigt wurde. Daher sind die Strukturen noch nicht so sauber, wie man (ich) es sich (mir) wünschen würde. Da es aktuell für mich hinreichend funktioniert und immer Zeitmangel herrscht, wird sich daran auch demnächst nichts ändern. Ich bitte daher die Quelltext-Qualität zu entschuldigen :-).

Der Quelltext steht (bis auf EXIF.py) unter der GNU-General Public License.