AlGen2

Was ist AlGen2?

AlGen2 ist ein Windows-Programm, das Bilder von Digitalkameras zu Web-tauglichen Bilderalben verarbeitet:

  • liest die Formate JPEG und BMP
  • schreibt
    • »Vorschaubilder« (JPEGs in typischer Web-Auflösung, wie 640x480)
    • Thumbnails
    • eine Thumbnail-Übersicht in HTML
    • eine HTML-Datei für jedes Bild, mit der man bequem durch die Bilder durchblättern kann
    • eine HTML-Datei für jedes Bild, welche die detaillierten EXIF-Informationen enthält
  • Parameter (Größe, Qualität) der ausgegebenen JPEGs kann frei eingestellt werden
  • unterstützt Alben mit maximal 16383 Bildern
  • Reihenfolge der Bilder kann im Programm geändert werden
  • Bilder können zur schnelleren Sortierung in selbst definierte Kategorien eingeordnet werden
  • Bilder können in 90°-Schritten gedreht werden
  • jedem Bild kann eine kurze Beschreibung zugeordnet werden
  • flexible Einstellungen zur Generierung der Dateinamen
  • einfaches Preprocessing der Bilder: Median-Filter, automatische Tonwertkorrektur
  • Bequeme Bedienung per Drag&Drop
  • Projekte können gespeichert und wieder geladen werden

AlGen2 ist Open-Source-Freeware und darf beliebig kopiert, weitergegeben und modifiziert werden. Der Autor ist jedoch nicht für eventuelle Schäden, die das Programm verursachen könnte, haftbar zu machen.

Das Konzept

AlGen2 nimmt zunächst Bilder z.B. von Digitalkameras entgegen und erstellt am Ende ein Album, indem die Bilder einfach durchnummeriert sind. So weit, so gut. Der spannende Teil liegt jedoch dazwischen. Die Bilder können nämlich nicht nur umsortiert, einzeln abgewählt und mit einem individuellen Titel versehen werden - das wirklich Interessante ist das Konzept der Kategorien.

Dazu folgendes Szenario: Eine große Wochenendveranstaltung mit vielen Teilnehmern soll dokumentiert werden, also finden sich am Anfang der nächsten Woche insgesamt ca. 600 Bilder aus mehreren Quellen (also mit verschiedenen Dateinamen, Bildauflösungen usw.) ein. Ziel ist es, von diesen Bildern die ca. 50-100 repräsentativsten zu einer Web-Bildergalerie zu verarbeiten.

Für diese Situation reicht einfaches Sortieren nach Dateinamen nicht mehr aus, um die Bilder in ihre chronologische Ordnung zu bringen. Daher macht sich das Kategorienkonzept bewährt: Man teilt den Ablauf in grobe Zeitabschnitte ein, und ordnet die Bilder diesen Abschnitten zu. Da die Reihenfolge der Kategorien als Sortierkriterium fungiert, rücken die Bilder damit schon grob an die richtige Stelle und man muss später nur noch eine Feinsortierung vornehmen.

Für AlGen2 bedeutet das konkret: Man kann Bilder in Kategorien einordnen, wobei die Reihenfolge der Bilder stets durch die Kategorienreihenfolge bestimmt ist. (Anders formuliert: Es kommen erst alle Bilder von Kategorie 1, dann alle Bilder von Kategorie 2 usw.) Zusätzlich gibt es eine spezielle Kategorie »nicht zugewiesen« für alle Bilder, die in keiner anderen Kategorie eingeordnet sind. Neue hinzugefügte Bilder erscheinen prinzipiell in dieser Kategorie - wer also keine Kategorien nutzen will, lässt einfach alle Bildern unzugeordnet.

Die Programmoberfläche

Das Hauptfenster ist der Übersicht halber in vier Unterseiten gegliedert. Auf der letzten Seite finden sich einige Tips, die (hoffentlich) alle nicht-trivialen Besonderheiten der Bedienung ausreichend erklären. Schließlich gibt es ja Leute da draußen, die nicht erst die Dokumentation zu der Software lesen wollen, die sie verwenden ;)

Eine wichtige Sache noch vorweg: Der Standardweg, im Bilder in ein AlGen2-Album einzufügen, ist Drag&Drop vom Explorer aus. Also einfach ein paar Bilddateien (JPEG oder BMP) in das Fenster ziehen, und sie werden zu der Bilderliste hinzugefügt.

Mit dem Drag&Drop-Mechanismus kann überdies auch das Zielverzeichnis bestimmt werden: Zieht man ein (und zwar genau ein) Verzeichnis ins AlGen2-Fenster, so wird dieses als Zielverzeichnis übernommen.



Die vorletzte Seite zeigt das Logbuch, in dem Fehler- und Erfolgsmeldungen für alle wichtigen Programmaktionen zu finden sind. Bei zeitaufwändigen Aktionen, wie dem Hinzufügen von Bildern und dem Erstellen eines Albums, wird automatisch auf diese Seite umgeschaltet.
Dort können solche Aktionen mit dem »Vorgang abbrechen«-Button auch unterbrochen werden.

Mit der unscheinbaren Checkbox »-v« können die Nutzer gängiger Unixe und Unix-artiger Tools sicherlich etwas anfangen. Für alle anderen: bei aktiviertem -v (wie »--verbose«) werden beim Erstellen einer Galerie zusätzliche Statusmeldungen über die diversen Einzelschritte bei der Bearbeitung eines Bildes ausgegeben; ohne -v sieht man nur, ob ein Bild ingsesamt erfolgreich bearbeitet wurde.


Die Seite »Allgemein«

Auf dieser Seite werden alle allgemeinen Optionen für das zu erstellende Album gesetzt.

Abschnitt »Allgemein«

Zielverzeichnis: Das Verzeichnis, in dem das Album abgelegt werden soll. Das sollte möglichst ein leeres Verzeichnis sein, denn es entstehen ja doch recht viele Dateien bei einem Album!
Mit dem »Durchsuchen«-Button kann man das Verzeichnis auch per Dialog auswählen.

Titel des Albums: Der Text, der später als Überschrift über der Thumbnail-Übersicht erscheint.

Abschnitt »Preprocessing«

Diese beiden Optionen geben an, ob und wie die Rohbilder gefiltert werden sollen, bevor sie weiterverarbeitet werden.

Median-Filter: Diese Option aktiviert ein einfaches »Median-Cut«-Filter. Es dient dazu, Rauschen zu mindern und eventuelle fehlerhafte Pixel der Digitalkamera zu kaschieren.

Tonwertkorrektur: Diese Option führt eine (zugegebenermaßen recht primitive) Tonwertkorrektur durch. Der einstellbare Wert für die Stärke gibt an, wieviel Promille(!) dunkle Pixel jeweils zu Schwarz und helle Pixel zu weiß werden sollen. Darüber hinaus kann man einstellen, ob dieser Prozess für jeden der Farbkanäle unabhängig durchgeführt werden soll (»RGB einzeln«) oder ob er alle Kanäle gleichermaßen bearbeiten soll (»Grauwerte«).
Diese Option ist in erster Linie dazu da, Farbstiche zu entfernen und fehlbelichtete Bilder auszukorrigieren. Durch die doch recht einfache Struktur des Filters kann es jedoch auch vorkommen, dass diese Option Farbstiche und Fehlbelichtungen produziert, also mit Bedacht anwenden! (Wenn jemand einen richtig guten Algorithmus à la Photoshop-Auto-Tonwertkorrektur kennt, bitte bei mir melden ;)

Abschnitte »Vorschaubilder« und »Thumbnails«

Hier werden maximale Größe und Qualität der entstehenden Bilder eingestellt. »Maximale« Größe bedeutet hier: Die Bilder werden so eingepasst, dass sie nicht breiter und höher als angegeben werden - das Seitenverhältnis wird dabei allerdings nicht abgeändert. Daher ist die Option »quadratisch« nur kosmetischer Natur: Sie produziert keine quadratischen Bilder, sondern sorgt lediglich dafür, dass maximale Breite und maximale Höhe gleich sind.

Die Qualität wird auf einer Skala von 1 (schlechteste Qualität, kleinste Dateien) bis 99 (beste Qualität, größte Dateien) eingestellt. Mit der Option »progressiv« lässt sich einstellen, ob sich das Bild beim Download einfach von oben nach unten aufbauen soll (progressiv aus) oder erst ein grobes, pixeliges Bild angezeigt werden soll, das sich anschließend verfeinert (progressiv ein).

Die 3D-Kante ist nur für Thumbnails verfügbar. Sie schrägt gewissermaßen die Ecken des Bildes an, so dass ein 3D-Eindruck entsteht und dem Benutzer signalisiert: »Hier kannst du draufklicken«.

Abschnitt »Ausgabe«

HTML-Ausgabe: Dieses Drop-Down-Feld bestimmt darüber, welche Dateien beim Erstellen des Albums erzeugt werden sollen:
OptionErzeugte Dateien
keineVorschaubilder
keine, aber Thumbnails erzeugen+ Thumbnails
nur Übersicht   + Thumbnail-Übersicht
Übersicht und Album      + HTML-Album zum Durchblättern
Übersicht und Album mit Details         + EXIF-Informationen zu jedem Bild

Thumbnails pro Zeile: Die Anzahl der Thumbnails, die in der Thumbnail-Übersicht ein eine Zeile geschrieben werden. Der Standardwert besagt z.B., dass aller 5 Bilder eine neue Zeile angefangen wird.

nicht zugeordnete Bilder: Hiermit wird festgelegt, was mit Bildern geschieht, die keiner Kategorie zugeordnet sind:
OptionBedeutung
ignorierenNicht zugeordnete Bilder werden nicht mit ins Album aufgenommen.
am AnfangNicht zugeordnete Bilder werden an den Anfang des Albums gesetzt, d.h. sie haben die niedrigsten Nummern und erscheinen in der Thumbnail-Übersicht direkt nach dem Haupt-Albumtitel.
am EndeNicht zugeordnete Bilder werden an das Ende des Albums gesetzt, d.h. sie haben die höchsten Nummern und erscheinen in der Thumbnail-Übersicht ganz am Ende unter der Kategorienüberschrift »(nicht zugeordnet)«.

Zielverzeichnis vor der Ausgabe leeren: Mit dieser Option wird AlGen2 angewiesen, vor dem Erzeugen eines Albums alle *.htm- und *.jpg-Dateien im Zielverzeichnis sowie alle *.jpg-Dateien in den beiden unter »Dateinamen« angegebenen Unterverzeichnissen zu löschen. Praktisch, wenn man das Album nach kleinen Änderungen neu erstellen will, aber potentiell gefährlich, wenn sich noch andere Dateien im Zielverzeichnis aufhalten.

HTML-Alben mit voller Breite: Wenn diese Option aktiviert ist, wird die grau unterlegte Tabelle, die in den Albendateien das jeweilige Bild enthält, auf volle Seitenbreite aufgezogen. Das ist sehr praktisch, wenn die Beschreibungen für einige Bilder sehr lang werden können oder die Bilder stark unterschiedlich groß sind, denn mit dieser Option bleiben die Links zur Navigation dann an einer konstanten Stelle stehen und wandern nicht je nach Bildgröße und Beschreibungslänge mit.

Abschnitt »Dateinamen«

Die verschiedenen Präfix-Optionen geben an, wie die Vorschaubilder, Thumbnails, Alben und EXIF-Details-Dateien heißen sollen. An sie wird jeweils die Nummer des Bildes und eine passende Endung angehängt. Enthält »Präfix für Vorschaubilder« zum Beispiel den Wert «image«, würden Dateinamen wie »image123.jpg« entstehen.
Soll die Nummer nicht am Ende des Dateinamens stehen, so fügt man an entsprechender Stelle ein Prozentzeichen (»%«) ein: Der Wert »img%info« als »Präfix für Details-Dateien« führt zum Beispiel zu Dateinamen wie »img037info.htm«.

Die Vorschaubilder und Thumbnails können jeweils in einem eigenen Unterverzeichnis abgelegt werden. Somit würden im Zielverzeichnis selbst nur die HTML-Dateien abgelegt werden, alle Bilder erscheinen in ihren jeweiligen Unterverzeichnissen.

Der Name für die Thumbnail-Übersicht wird direkt übernommen; es wird lediglich die Endung ».htm« ergänzt.

Mindestanzahl Ziffern in Nummerierung: Die Nummerierung der Bilder erfolgt mit mindestens der angegebenen Ziffernanzahl, ggf. wird mit Nullen aufgefüllt. Reichen die Ziffern nicht aus, werden neue ergänzt.

Die Buttons

Laden/Speichern: Mit diesen Funktionen können AlGen2-Projekte (*.ag2, ein XML-ähnliches Format) geladen und gespeichert werden. Die Projektdateien enthalten neben der Konfiguration auch die Bilderliste - aber natürlich nicht die Ursprungsbilder selbst, die müssen beim Laden eines Projektes wieder eingelesen werden.

Album erzeugen: Dieser Button endlich löst den Vorgang aus, bei dem das Album erstellt wird. Alle ausgewählten Bilder werden dabei von 1 an durchnummeriert. Der genaue Verlauf des Vorgangs wird im Logbuch-Fenster angezeigt.


Die Bilderliste

Die Seite »Bilderliste« ist der Hauptarbeitsbereich von AlGen2. Hier werden Bilder sortiert, kategorisiert, selektiert, rotiert und beschriftet.

Der »Menü«-Button oben links klappt ein kleines Popup-Menü mit wichtigen Optionen auf. Dazu später mehr.

Das »Kategorie anzeigen«-Drop-Down ist sehr nützlich, um die Übersicht in großen Bildermengen zu wahren: Mit ihm kann man einstellen, ob alle Bilder im Listenfenster sichtbar sind, oder nur die einer angegebenen Kategorie (wobei »nicht zugeordnet« auch eine Kategorie darstellt).

Der »Bearbeiten«-Button öffnet den Kategorieneditor, der später beschrieben wird.

Bildbeschreibung: In diesem Textfeld wird die Beschreibung des zuletzt ausgewählten Bildes angezeigt und kann auch bearbeitet werden.
Wichtig: Änderungen an der Beschreibung werden erst dann übernommen, wenn man im Beschreibungs-Textfeld(!) [Enter] drückt! Wählt man einfach ein anderes Bild aus, werden eventuell vorgenommene Änderungen verworfen!
Drückt man im Textfeld [Enter], wird nicht nur die Beschreibung für das ausgewählte Bild geändert, die Auswahl rückt auch gleich zum nächsten Bild weiter. So kann man schnell und ohne Unterbrechung Beschreibungen eingeben.
Den selben Zweck wie die [Enter]-Taste erfüllt hier die Pfeil-nach-unten-Taste (immer unter der Voraussetzung, dass der Cursor im Bildbeschreibungs-Textfeld steht!). Mit der Pfeil-nach-oben-Taste wird analog die Beschreibung übernommen und die Auswahl rückt nach oben weiter.

Die Pfeil-Buttons unten rechts dienen dazu, das gerade ausgewählte Bild (bzw. die ausgewählten Bilder) innerhalb der Liste zu verschieben. Die selbe Funktion erfüllen die Oben/Unten-Pfeiltasten in Verbindung mit [Strg], wenn die Bilderliste den Eingabefokus hat.
Beim Verschieben ist zu Beachten, dass Bilder natürlich nur innerhalb ihrer Kategorie verschoben werden können - kategorienübergreifendes Verschieben (wie es sowieso nur möglich ist, wenn man alle Kategorien gleichzeitig anzeigen lässt) ist zwar möglich, allerdings werden alle Bilder nur bis zum Anfang bzw. Ende ihrer Ursprungskategorie bewegt.


Die Bilderlisteneinträge

Jeder Eintrag in der Bilderliste enthält die Angaben, wie sie in der nebenstehenden Abbildung angegeben sind. Darüber hinaus gibt es drei speziell anklickbare Bereiche:

Das Häkchen neben dem kurzen Dateinamen dient zur Umschaltung, ob das Bild in das Album mit aufgenommen wird oder nicht.
Eine etwas »brutalere« Methode, Bilder aus dem Album auszuschließen, ist, sie gleich komplett aus der Bilderliste zu entfernen. Das geht mit der [Entf]-Taste, auch wenn mehrere Bilder ausgewählt sind.


Klickt man auf den kleinen Pfeil links von der Kategorienangabe, so erscheint ein Drop-Down-Menü mit allen Kategorien (inklusive »nicht zugeordnet«). Ein Klick auf eine der Kategorien weist das ausgewählte Bild der angegebenen Kategorie zu und setzt den Cursor auf das nächstbeste Bild in der aktuell angezeigten Kategorie.

Wenn man mit der linken Maustaste auf den Pfeil klickt, wird vorher die Auswahl auf dieses eine angeklickt Bild eingeschränkt. Will man hingegen mehrere Bilder auf einem Schlag neu zuordnen, so markiert man sie zunächst (Windows-standardgemäß mit [Strg] oder [Shift] und Mausklick) und klickt dann mit der rechten Maustaste auf den Kategorien-Pfeil. Dadurch bleibt die Auswahl erhalten und man kann mit einem Rutsch eine ganze Menge Bilder in eine andere Kategorie schicken.

Eine Besonderheit ist der Punkt »Neue Kategorie« in dem Kategorien-Dropdown-Menü: Er öffnet ein Eingabefenster, in das man den Namen einer neuen Kategorie angeben kann. Eine Kategorie mit diesem Namen wird dann angelegt und das ausgewählte Bild (bzw. die ausgewählten Bilder) werden dieser Kategorie gleich zugeordnet.


Ebenso wie das Kategorien-Dropdown funktioniert das Drehungs-Dropdown: Ein Klick, ggf. mit der rechten Maustaste, auf den kleinen Pfeil öffnet ein Menü, der die Drehung für das bzw. die ausgewählten Bild(er) einstellt.

Die Drehung sieht man nicht sofort in dem kleinen Thumbnail in der Bilderliste; erst eine Vorschau der Ausgabe zeigt, wie das gedrehte Bild aussieht.


Das Bilderlistenmenü

Alle Optionen rund um die Bilderliste, die selten gebraucht werden oder das Interface zu stark überfrachtet hätten, sind in diesem Menü zusammengefasst:

Vorschaubild/Thumbnail anzeigen: Durch diese Menüpunkte wird von dem aktuellen Bild die Vorschau oder das Thumbnail erzeugt - und zwar exakt so, wie es später im Web aussehen wird, also mit allen Filtern und sogar schon mit der abschließenden JPEG-Kompression.

Es erscheint ein Vorschaufenster, das in der Titelzeile einige Informationen rund um das erstellte Bild enthält: Dateiname, Auflösung, Dateigröße und die zum Rendern benötigte Zeit. Im Vorschaufenster kann mit dem Mausrad oder mit den Tasten [+] und [-] gezoomt werden.

Sortieren: Wie der Name andeutet, werden durch diese drei Optionen die Bilder in der gerade angezeigten Kategorie (oder in allen Kategorien, wenn alle angezeigt werden) nach Name, Dateidatum oder Aufnahmedatum sortiert. Letzteres ist das Datum, das EXIF-konforme Kameras in den JPEG-Dateien ablegen. Ist diese Information nicht vorhanden oder ungültig, so wird auch hier das Dateidatum verwendet.

Bilder hinzufügen: Dieser Menüpunkt öffnet einen Dateiauswahldialog, mit dem man manuell und mühselig Bilder in die Liste hinzufügen kann. Diese Methode ist selbstverständlich nicht zu empfehlen - Drag&Drop ist um Größenordnungen bequemer.

Zurücksetzen: Nach einer Sicherheitsabfrage wird die Bilderliste (inklusive Kategorienbezeichnungen) rigoros geleert.


Der Kategorieneditor

Der Kategorieneditor ist gewissermaßen ein »Unterfenster« unter der Bilderliste. Solange er angezeigt wird, kann an der Bilderliste sonst nichts mehr geändert werden. Der »Schließen«-Button rechts oben schließt den Editor wieder und übernimmt alle eventuell vorgenommenen Änderungen.

Oben/Unten: Diese beiden Buttons bewegen die gerade ausgewählte Kategorie in der Liste um eins nach oben bzw. nach unten.

Ändern: Dieser Button öffnet eine Eingabe-Dialogbox, in der man den Namen der gerade ausgewählten Kategorie ändern kann.

Löschen: Dieser Button löscht (nach Rückfrage) die gerade ausgewählte Kategorie. Bilder, die dieser Kategorie angehörten, werden dadurch als »nicht zugewiesen« markiert.

Neu: Dieser Button öffnet eine Eingabe-Dialogbox, in der man den Namen einer neuen Kategorie eingeben kann, die dann am Ende der Liste erzeugt wird.

FAQ

Unter welchen Betriebssystemen läuft AlGen2?

Mit einem Wort: Win32. Ob es sich dabei um eine 9x-Variante (95, 98, 98SE, ME) oder ein NT (NT4, 2000, XP, 2003, Longhorn) handelt, sollte egal sein. Die Schriftart Tahoma sollte installiert sein (bei allen Versionen mit Internet Explorer >= 4.0 sowieso), sonst sehen die Schriften nicht so toll aus. Eine Bildschirmauflösung von mindestens 800x600 ist Pflicht, mindestens 16 Bit Farbtiefe wären ratsam. Ansonsten wäre 'ne gute Portion RAM praktisch, und natürlich CPU-Leistung je nach Geduld und Geldbeutel.

Und was ist mit Linux? *BSD? MacOS? (weitere Betriebssysteme bitte einfügen)

Eigentlich sollte AlGen2 ja wenigstens eine Win32/Linux-Qt-Multiplattform-Anwendung werden (womit es neben Windows zumindest unter x86-Linux und x86-BSDs funktioniert hätte). Allerdings hat mir Borland da einen Strich durch die Rechnung gemacht: Delphi 7 (das ich mal kurzzeitig ausprobieren konnte) erlaubt zwar das Programmieren solcher Anwendungen, allerdings ist Borlands Qt-Interface für Windows scheinbar kaputt und mag keine JPEGs laden. Damit ist das Unternehmen natürlich gestorben und ich hab es stattdessen old-school mit der VCL für Win32 im guten alten Delphi 6 Personal geschrieben.

Wenn es AlGen2 gibt, gibt es dann auch AlGen1?

Ja. AlGen1 ist 2001 (mit Delphi 4, hach, das waren noch Zeiten) entstanden und hat mit AlGen2 außer dem Namen und der grundlegenden Funktion nichts gemein. Es konnte nur 99 Bilder bearbeiten, und was schlimmer war: Es hat Bilder immer konstant um den Faktor 2 verkleinert. (Damals hatte ich gerade eine 1-Megapixel-Kamera, da war das genau richtig ... heutzutage macht diese Methode bei 4-Megapixel-Bildern aber keinen Sinn mehr.)

Warum ist das Programm so schrecklich langsam?

Weil ich alles allein geschrieben habe :)
Die JPEG-Technik wird von Borland geliefert und basiert auf der IJG-Referenzimplementation (und sollte somit nicht wesentlich langsamer sein als die von Paint Shop Pro z.B.). Die Preprocessing-Filter sind von mir, sollten aber vernachlässigbar wenig Rechenzeit benötigen. Die Rotation der Bilder habe ich mit hässlichem, aber erstaunlich effizientem Code erschlagen (rotiert ein 800x600-Bild auf einem 450er Celeron in 50 Millisekunden). Bleibt also die Skalierung - und die ist wirklich langsam, weil FPU-basiert. Das geht sicherlich effizienter, aber die zuständige Unit ist alt und lang, und ich habe nicht allzu viel Lust, das alles neu zu schreiben. Zum Trost: Die Resultate sind beinahe exakt mit denen vom Paint Shop Pro identisch (von Rundungsfehlern abgesehen).

Are there any translated versions available?

Sorry, there are no translations. Even worse, the program structure is not very i18n-friendly, so every text has to be replaced »by hand«. But if there are enough people who really want to have an English/French/whatever version, I could easily make a version where locale-specific data is concentrated in a single unit.

  (C) 2003 Martin J. Fiedler
martin.fiedler@gmx.net