Virtuelle Bilderverwaltung mit bash - lokale Webanwendung ohne Webserver
"Schatz, ich weiss nicht, wo diese 79 Bilder sind und ich muss auch noch die ganzen Zuspieler sortieren. Stunden habe ich damit zugebracht, alles zu durchsuchen, wo's sein könnte, aber ich hab' nur die 20
hier gefunden und am 31. ist Sendung !".
Der Hilferuf meiner Gemahlin kam mit sehr langer Ansage. Was war passiert ? Der Sender, über welchen meine Gemahlin viele Jahre Kunden mit schönen Pflanzen,
Gartentipps und -produkten beglückt, plante die Umstellung analoger Photoausdrucke auf digitale Tablets. Nun rächte sich, dass man nie die Zeit hatte, abertausende von Bildern in den
verschiedensten Verzeichnissen zu kategorisieren, benennen und systematisch abzulegen. Dazu kamen über die Jahre viele Datenträger von Kundinnen, Kolleginnen und Freundinnen. Auch der Smartphone-Dump der
Tocher spült viele Gigabyte auf die Festplatte ("Papa, kannst Du das mal sichern ?"), katalogisiert wird später.
Natürlich gibt es viele Anwendungen zur Bilderverwaltung, aber wenn man sich's frei aussuchen dürfte, würde man gerne gar nicht wissen müssen, wo was liegt, sondern hätte "magic" aus den verschiedensten
Tiefen der Festplatte alles in einem virtuellen Fenster beliebig einzeln oder in Gruppen skalier, auswähl-, vergrößer-, verschieb- und vergleichbar, müsste nur in alle Richtungen "wischeln" und in fachliche Schubladen einordnen, ebenfalls, ohne sich
zunächst Gedanken machen zu müssen, wo und wie diese Schubladen später gespeichert werden und alles natürlich auch bei 500 MByte extrem performant und für "Wischel-Fans" wie vi-Tastaturminimalisten gleichermaßen
user-friendly.
Dann verschwenden wir keine Zeit mit der Suche nach der 15. Bildbearbeitungs-Software (und dem 15. Kompromiss), sondern bauen diese Anwendung schlicht selbst genau so, wie wir das möchten.
Dazu braucht es lediglich
- ein winziges convenience-Script, um alle Bilder aus gewünschten Verzeichnissen als Soft-Links in einem damit virtuellen Verzeichnis zu verknüpfen (das entspricht gedanklich der Virtualisierung)
- das lässt sich freilich auch ohne Kenntnis der Ablageorte mit einem einfachen find-Befehl in einem Rutsch erledigen
- find . \( -iname '*.jpg' -o -iname '*.JPG' \) -exec ln -s \{\} $virtualDir \;
- das zentrale Bash-Script, welches hieraus die gesamte Bildverwaltung als rein lokal laufende Web-Anwendung ohne Bedarf eines Webservers on-the-fly generiert und
nach Kategorisierung eine rein fachliche Zuordnungsliste als Text-Datei für den Download
- Bild:Kategorie, z.B.
- /home/heinz/.workdir/DSC043571.jpg:Chrysanthemen
erzeugt,
- sowie ein kleines Nachlauf-Script, welches die Liste fachlicher Kategorien und Bildzuordnungen auf eine beliebig später festzulegende Ordner- und Benennungsystematik der Festplatte abbildet, also quasi devirtualisiert.
Dabei werden auch alle Links rekursiv korrekt wie transparent aufgelöst, ohne die Anwenderin zu behelligen.
Alle (jeweils an Ihre Verhältnisse anzupassenden) Scripts (z.B., wenn das Generat nicht Gabriele.htm heißen soll; ich persönlich empfehle in der Abwägung gegenüber mühevollem Editieren jedoch unbedingt die "Anschaffung" einer Gabriele, denn ohne sie ist das Leben nutzlos ;-) )
- mypicalbumprepare
- mypicalbum
- Bash generiert Plain-HTML/Javascript ohne Verwendung irgendwelche Bibliotheken. Das Generat (Default: Gabriele.htm) wird lokal im Browser ausgeführt und ist
für vi-Tastaturliebhaber für Firefox-Tastencodes vorgesehen. Operiert wird auf komprimierten Bild-Kopien, weswegen die Anwendung im Browser auch bei vielen 100 MByte
großen Bildverzeichnissen verzögerungsfrei läuft; für Vergleiche werden in Popups Originale geladen.
- mypicalbumaftercare
finden sich im Downloadbereich..
Wie aus den sortierten Bildern via bash automatisch Impress-/Powerpoint-Präsentationen erstellt werden können, beschreibt
Teil 2, während Teil 3 alternative Verfahren zur vollautomatischen Filterung von Bildverzeichnissen unter GIMP/Script-Fu/bash und Photoshop vorstellt.
Hier der Ausschnitt der Online-Hilfe dazu (im Beispiel unten etwa war der eigentliche Bilderordner 447 MByte groß, wie die Info-Zeile ausweist)
Ablauf Bedienung Funktionen und Hotkeys
Ablauf
- Mit dieser Anwendung können Bilder aus mehreren Ordnern in beliebige fachliche Schubladen sortiert werden, ohne dass man den Speicherort der Bilder oder fachlichen Schubladen zur Sortierung kennen muss.
- Vor Start der Anwendung werden die Originalbilder aus ggf. verschiedenen Ordnern verkleinert kopiert und in der linken Hälfte angezeigt. Nur bei Darstellung eines oder mehrerer
Bilder in einem neuem Fenster werden die unkomprimierten Originalbilder geladen. Zu keinem Zeitpunkt werden Originale oder Kopien auf der Festplatte verändert oder wirklich verschoben. Der
Sortiervorgang erzeugt lediglich eine Anleitung, um später die Originaldatein in Ordner, welche den fachlichen Schubladen entsprechen, kopieren oder verschieben zu können.
- In der rechten Hälfte werden Schubladen angelegt, in welche die Bilder eingeordnet werden. Der Papierkorb ist ebenfalls eine Schublade. Hierhin sortierte Dateien werden später gelöscht.
"Papierkorb leeren" bedeutet nur, dass Bilder dort in der Anwendung nicht mehr angezeigt und daher auch nicht mehr zurückverschoben werden können, also nach Anwendungsende sicher zu löschen sind.
- Nach Sortierung/Löschung aller Bilder muss das Ergebnis unbedingt als Text über den Link "Sortierung Speichern" gesichert werden. Nur über diese Anleitung können später die Originaldateien
auf der Festplatte real kopiert oder verschoben werden.
- Dazu muss in einem Folgeschritt (nach Ende der Anwendung) festgelegt werden, welche fachlichen Schubladen welchen echten Verzeichnisse auf der Festplatte entsprechen sollen
- Die Anwendung kann sowohl mit der Maus als auch (nur) der Tastatur bedient werden.
Bedienung mit Maus und Tastatur
- Ein oder beliebig viele Bilder werden mit der linken Maustaste aus- oder abgewählt.
- Ausgewählte Bilder werden durch einen roten Rahmen angezeigt. Bilder im Papierkorb sind schwarzweiß und haben bei Auswahl einen schwarzen Rahmen
- Ausgewählte Bilder können durch "Drag and Drop" (Ziehen mit der Maus und Loslassen) überallhin, also auch innerhalb ihrer Schublade, verschoben werden.
Tabelle für Maussteuerung (jeweilige Buttons) und Tastatur-Hotkeys
Sortierung Speichern | |
Bild aus/-abwählen (linke Maustaste) | Leertaste |
Bilder aus/-abwählen (linke Maustaste) | Auswahl Nachbarbilder: SHIFT-Links-/Rechtspfeil, Abwahl Nachbarbilder: CTRL-Links-/Rechtspfeil (allererstes Bild muss mit der Maus ausgewählt werden) |
Zum linken/rechten Nachbarbild wechseln | Links-/Rechtspfeil |
Gesamte Auswahl abwählen | u(nmark) |
Lupe an: CTRL und mit Maus über Bild fahren | z(oom) |
Lupe aus: mit Maus von Bild wegfahren | Z(oom) |
Alle Bilder vergrößern/-kleinern: Kein Bild auswählen | +,- (ohne Bildauswahl) |
Bilder links vergrößern/-kleinern | L,l |
Bilder rechts vergrößern/-kleinern | R,r |
Ausgewählte Bilder anzeigen | vergleiche |
Ausgewählte Bilder rechts, links drehen | o,O |
Ausgewählte Bilder beliebig verschieben: Maus ziehen und auf anderem Bild (oder eine Schubladenüberschrift) loslassen | |
Ausgewählte Bilder in ausgewählte Schublade verschieben: dito | move |
Ausgewählte Bilder nach links zurückverschieben: dito | Move |
Ausgewählte Bilder vergrößern/-kleinern: Bilder auswählen | +,- (mit Bildauswahl) |
Alle Bilder in der Größe normieren wie (erste) ausgewählte Bilder der linken und rechten Hälfte | n(orm) |
Linke/rechte Hälfte vergrößern | >,< |