Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Ich habe da mal wieder eine ungewöhnliche Frage. Kann ich aus einem eigenen Programm oder Script heraus die Erzeugung von neuen Thumbnails veranlassen? Hintergrund: Ich habe da ein einfaches Programm zum Sortieren von Bildern gebastelt. Da die Erzeugung eigener (temporärer) Thumbs recht zeitaufwändig ist, verwende ich alternativ die vorhandenen System-Thumbs, die aber nicht immer vorhanden sind. Mein Programm kann auch nur wenige Formate, weswegen ich gerne auf sicherlich vorhandene System Funktionalität zurückgreifen würde. Geht das, und wenn ja, wie? Edit: Ex Tippfehler
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Das kommt ein wenig auf die Umgebung an. Bei KDE/Plasma geht das über KIO, genauer über ThumbCreator (API), welche theoretisch identisch mit der freedesktop-Thumbnail Spezifikation sein sollte™.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Leider habe ich aktuell kein KDE System am laufen. Prinzipiell wäre so eine allgemeine Schnittstelle aber das was ich suche. Eigentlich könnte ich Thumbnails für BMP, GIF, JPG und PNG selbst erzeugen, aber keine anderen Formate, insbesondere keine Video Formate. Das ist insofern blöd, als mein Programm "fremde" Dateien mit externen Programmen bearbeiten/starten kann. Da ist es dann nicht sehr erbaulich, wenn da nur Dummies angezeigt werden (siehe Anhänge).
- Bilder
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Bei der Suche nach ExifTool bin ich über dieses Thema gestolpert: Vielleicht hilft dir das weiter: https://stackoverflow.com/questions/10349622/extract-thumbnail-from-jpeg-file
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Leider hilft das nicht wirklich weiter. Allerdings ist da die verlinkte Doku im ersten Post recht interessant aber auch ernüchternd. Mir war nicht klar, das in den Exifdaten auch ein Vorschaubild enthalten ist.
There are 3 formats for thumbnails; JPEG format(JPEG uses YCbCr), RGB TIFF format, YCbCr TIFF format.
Wobei ich nur mit unkomprimierten RGB Daten ewas anfangen könnte. Ich hatte eigentlich gehofft, dass es für Thumbnails eine ähnlich elegante Lösung gibt wie mit libenchant für die Rechtschreibprüfung. Und es scheint bei den Thumbnailern einen ziemlichen Wildwuchs zu geben. In den Systemthumbs habe ich folgende Signaturen gefunden:
exo 0.12.0
Geeqie 1.4
GIMP 2.8.22
GNOME::ThumbnailFactory
MATE::ThumbnailFactory
Paragraf eins, jeder macht seins.
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8625
Wohnort: Münster
|
Dakuan schrieb: […] Kann ich aus einem eigenen Programm oder Script heraus die Erzeugung von neuen Thumbnails veranlassen?
Dazu musst Du nur die Bilder mit einem herkömmlichen Bildbetrachter öffnen. Du könntest z.B. ein solches Programm über Nacht eine Diaschau präsentieren lassen.
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Dakuan schrieb: Paragraf eins, jeder macht seins.
Scheint auch ein etwas größeres Projekt zu sein → KDE/kio-extras/tree/master/thumbnail Bietet dein Framework denn da keine Standardklasse für? Bei Qt gibt es die QImage-Klasse oder den Weg über QPixmap (zur Icon-Erstellung).
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Bietet dein Framework denn da keine Standardklasse für?
Nein, FLTK beschränkt sich auf die GUI und vermeidet unnötige Abhängigkeiten. Das eigentliche Erstellen der Thumbs ist nicht das Problem, wenn man die RGB-Bilddaten erstmal hat. Zum Speichern kann man dann libpng bemühen. FLTK hat nur lesende Unterstützung für die gängigen Bilddateien. Video und PDF z.B. fehlt. Und die Idee mit dem Bildbetracher ist nicht praktikabel. Der müsste dann eine ganze Verzeichnisstruktur absuchen. Wenn ich da die kürzest mögliche Zeit einstelle (0,1 sec) komme ich auf etwa 11 Stunden. Ich möchte daher nur bei Bedarf, also wenn ich in einem bestimmten Verzeichnis arbeite, fehlende Thumbs erstellen lassen. Wahrscheinlich muss ich das dann tatsächlich selber machen (...jeder macht seins) und dabei etliches ausklammern.
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8625
Wohnort: Münster
|
Dakuan schrieb: […]
Und die Idee mit dem Bildbetracher ist nicht praktikabel.
Das musst letztlich Du beurteilen, aber …
Der müsste dann eine ganze Verzeichnisstruktur absuchen.
Das müsste jedes andere Programm zur Lösung der Aufgabenstellung auch.
Wenn ich da die kürzest mögliche Zeit einstelle (0,1 sec) komme ich auf etwa 11 Stunden.
Eine lange Nacht, aber morgen Mittag hast Du es. Ein anderes Programm wird zur Erstellung eines Thumbnails auch etwas Zeit benötigen. Schaffst Du, ein Programm zu erstellen, welches schneller ist? Vielleicht. Aber die Erstellung eines solchen Programms wird Dich auch einige Zeit, vielleicht mehrere Stunden kosten. Ich vermute, der Weg über den Bildbetrachter wird doch der schnellste sein.
Ich möchte daher nur bei Bedarf, also wenn ich in einem bestimmten Verzeichnis arbeite, fehlende Thumbs erstellen lassen.
Geht auch mit meinem Vorschlag. Aber es ist natürlich Deine Entscheidung, ob Du schnell die Aufgabe gelöst haben willst oder eher die intellektuelle Herausforderung der Programmerstellung genießt – beides hat seinen Reiz!
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Der müsste dann eine ganze Verzeichnisstruktur absuchen.
Das müsste jedes andere Programm zur Lösung der Aufgabenstellung auch.
Nein, eben nicht. Es sollen, bei Bedarf, nur die Verzeichnisse abgearbeitet werden, in denen ich gerade arbeite. Und das möglichst schnell. In einigen Verzeichnissen arbeite ich etliche Monate nicht, da ist dann auch kein Handlungsbedarf. Außerdem möchte ich das Thumbnail-Verzeichnis nicht unnötig vollmüllen. Bei einer Kompletterfassung müssten da alleine für mein Bildarchiv über 400000 Thumbs gespeichert werden. Beim normalen Arbeiten mit Dateimanager und Bildbetrachter liege ich im Mittel bei 6000 bis 12000 Thumbs (siehe angehängtes Bild, Erfassungsdauer ca. 4 Minuten). Dabei muss man wissen, das bei aktuellen Linux Systemen Thumbs nach 6 Monaten automatisch gelöscht werden.
Schaffst Du, ein Programm zu erstellen, welches schneller ist?
Nein, deswegen ja nur bei Bedarf, also das was fehlt.
Aber die Erstellung eines solchen Programms wird Dich auch einige Zeit, vielleicht mehrere Stunden kosten.
Du überschätzt mich. Ich würde dafür mindestens 2 Tage veranschlagen, obwohl ich schon die meisten Bausteine dafür habe. Die müssen aber neu kombiniert und aufeinander abgestimmt werden.
Aber es ist natürlich Deine Entscheidung, ob Du schnell die Aufgabe gelöst haben willst oder eher die intellektuelle Herausforderung der Programmerstellung genießt – beides hat seinen Reiz!
Eine sportliche Herausforderung ist das in jedem Fall. Aber es geht mir nicht um eine schnelle Lösung sondern um eine dauerhafte.
- Bilder
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Also so richtig was finden konnte ich auch nichts. Ich nehme an, falls du das wirklich selbst machen willst, bleibt dir nichts anderes übrig, als auf Basis von FI_Image eine eigene Thumbnail-Erstellung zu Schreiben. Speziell in dem Fall würde ich aber tatsächlich davon absehen, guckt man sich die fertigen Programme dafür an. Das könnte schnell ein großes Programm werden, welches parallel läuft und nicht zwingend schnell ist. Wenn ich Dolphin starte und einen Bilderordner mit vielen Bildern öffne, so kann ich zugucken, wie die Thumbnails generiert werden, dafür werden parallel Prozesse geöffnet, die ordentlich Leistung ziehen. Du bräuchtest also ein Programm, dass in separaten Threads die Ordner durchforstet, die Dateien nach Typ sortiert und Subroutinen drüberjagt, die die Bilder/Videos öffnet und ein Icon draus generiert. Das könntest du bei FLTK wohl über FI_File_Icon realisieren. Mir persönlich würde die Hauptanwendung mehr bedeuten, so dass ich da wohl auf externe Dienste vertraute. Spricht etwas dagegen für die (optionale) Anzeige von Thumbnails auf exiftool zurückzugreifen?
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Ich sagte doch bereits am Anfang, das es ein Programm zum sortieren von Bildern ist (siehe Anhang). Das bedeutet, das ich sowieso verkleinerte Images erstellen muss, was in der Tat etwas dauert. Daher habe ich irgendwann angefangen, sofern vorhanden, auf die System Thumbs zurückzugreifen (optional). Das bedeutet, das ein großer Teil der benötigten Programmbausteine bereits vorhanden ist. Ich müsste da eigentlich nur mit libpng eine Schreibmöglichkeit einbauen und die folgenden Tags in den Metadaten ergänzen:
Thumb::URI
Thumb::MTime
Software
Wenn ich Dolphin starte und einen Bilderordner mit vielen Bildern öffne, so kann ich zugucken, wie die Thumbnails generiert werden, ...
Den Effekt kenne ich auch. Das hat mich damals bei Nautilus schon geärgert, weil der stur seine Liste abarbeitet und nach jedem neuen Bild neu sortiert. Besser ist erstmal nur leere Rahmen mit den Dateinamen zu zeigen und dann vorrangig diejenigen zu vervollständigen, die im Fenster zu sehen sind.
Spricht etwas dagegen für die (optionale) Anzeige von Thumbnails auf exiftool zurückzugreifen?
Ja. Viele Bilder haben keine eingebetteten Thumbs.
- Bilder
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Dakuan schrieb: Den Effekt kenne ich auch. Das hat mich damals bei Nautilus schon geärgert, weil der stur seine Liste abarbeitet und nach jedem neuen Bild neu sortiert. Besser ist erstmal nur leere Rahmen mit den Dateinamen zu zeigen und dann vorrangig diejenigen zu vervollständigen, die im Fenster zu sehen sind.
Das ist dann wohl doch unterschiedlich. Ich kann schon scrollen, etc. und alle Dateien sehen. Lediglich die Icons sind dann noch ein Platzhalter.
Ja. Viele Bilder haben keine eingebetteten Thumbs.
Okay. Also bleibt es bei "Jeder macht seins". Andererseits ist man als Nutzer auch teilweise Warten gewohnt, bspw. wenn man mit EasyTag einen Ordner mit Dateien öffnet. Diese werden auch zunächst gelesen, bis man auf irgendwas zugreifen kann.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Okay. Also bleibt es bei "Jeder macht seins".
Ja, da muss ich dann wohl durch. Das ist eine lästige Arbeit, zumal mir die libpng etwas unsympathisch ist. Ist das erste Mal seit den 80-er Jahren, dass ich es mit longjump zu tun habe. Die Wartezeit ist nicht wirklich ein Problem, ist halt nur nervig. Auch bei EasyTag ist das für mich kein Problem. Da stört mich mehr, das man höllisch aufpassen muss, dass das Format nicht klammheimlich so konvertiert wird, das der MP3-Player damit nicht zurecht kommt. Natürlich habe ich auch schon darüber nachgedacht, mehrere Threads zu starten. Aber das ist nicht so einfach wie ich dachte. Wenn ein Herr A. Williams ein 500 Seiten starkes Buch (C++ Concurency in Action) dazu schreibt, zeigt das, dass dies nicht trivial ist.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Der Anfang ist geschafft. Ich habe jetzt meinen eigenen Thumbnailer und diesen heute erstmalig auf Produktivdaten losgelassen. Der kann zwar nur jpg, png, gif, bmp (nur RGB) und pnm, was aber schon einen großen Teil abdeckt. Er hat auch noch etliche Ecken und Kanten und ist auch (noch) nicht thread-save, funktioniert aber erstmal. Andere Programme fühlen sich jedenfalls nicht genötigt meine Thumbs zu ersetzen. Mein Hauptproblem lag in der Aufbereitung der Metadaten und in der Einpassung in den vorhandenen Programmablauf. Ich bin immer wieder erstaunt, was bei solchen Nebensächlichkeiten alles schief laufen kann. Aber ich wiederhole noch einmal meinen Vorschlag, das die Profis eine generelle Lösung finden sollten, die vom verwendeten Desktop unabhängig ist. So etwas gehört in die Standard Bibliotheken und sollte durch Plugins erweiterbar sein.
|