Posts Tagged ‘BVASystem’

BVASystem Version 2.2.0

Dienstag, März 11th, 2014

Da nun bereits wieder der Frühling vor der Tür steht, ist es wieder an der Zeit, eine stabile Version des BVASystems zu veröffentlichen. Wenn ich ehrlich bin, ist in den letzten Monaten dieses mal nicht eine einzige Funktion entstanden, die ich als das Non-Plus-Ultra bezeichnen würde. Vielmehr habe ich dieses mal eine Reihe von kleineren Verbesserungen vorgenommen, die sich beim täglichen Umgang mit dem Programm definitiv bemerkbar machen.

Am wichtigsten, gerade in Hinblick auf die Bildfilterung, war mir dabei die Neugestaltung der Sortierung. Die Ergebnisse der Bildfilterung können nun, auch schon bereits während die Filterung berechnet wird, nach Filterungsübereinstimmung sortiert werden. Damit erscheinen die Fotos, die man sicherlich sehen möchte am Anfang der Bildliste. Als weitere Veränderung an der Bildfilterung fällt sicherlich auf, das man nun einzelne Filter auch wieder löschen kann. Für bequeme Anwender besteht ebenfalls die Möglichkeit, alle Filter auf einmal zu löschen bzw. alle Filter zu deaktivieren. Als neues Filterkriterium können nun die zu den Fotos zugeordneten Schlagworte genutzt werden.

BVASystem 2.2.0 - Miniaturbilder mit aktivierter Bildfilterung

BVASystem 2.2.0 – Miniaturbilder mit aktivierter Bildfilterung

Ganz neu ist der Dialog, der zur Konfiguration der Schlagworte dienen soll. Mit diesem können bequem Schlagworte zu den einzelnen Schlagwortkategorien zugeordnet werden. Neu ist ebenfalls die Möglichkeit, Fotos aus der Datenbank zu exportieren. In der letzten Woche habe ich noch eine Funktion umgesetzt, die bereits seit rund 1300 Tagen auf meiner Todo-Liste stand. Es können nun mehrere Fotos auf einmal selektiert werden, wenn man beim Selektieren die Shift-Taste gedrückt hält.

Ausblick

Für die nächste Zeit habe ich mir wieder größere Änderungen vorgenommen. Die größte ist dabei sicherlich, das ich das System um eine lokale Datenbank erweitern möchte. Ich bin eigentlich total glücklich darüber, wie ich meine eigenen Fotos mit dem BVASystem verwalten kann. Allerdings stört mich, das immer mehr Funktionen ausschließlich datenbankseitig verfügbar sind. Daher habe ich mir überlegt, eine lokale Datenbankdatei zu nutzen, um nach und nach die angesprochenen Funktionen auch lokal nutzbar zu machen. Dabei sollen keine Bilder in der Datenbankdatei abgelegt werden. Die lokale Datenbank soll ausschließlich dazu dienen, die Textdaten der Fotos schnell auffindbar zu speichern.

Damit es auch wieder sichtbare Änderungen gibt, habe ich mir vorgenommen, die Filterung um weitere Kriterien zu erweitern. Gerade jetzt, wo die Sortierung der Filterungsergebnisse möglich ist, nutze ich die Funktion recht häufig. Allerdings fehlt mir definitiv noch das eine oder andere Kriterium, damit ich dort wunschlos glücklich werde. Fast noch wichtiger ist es, bei den Schlagworten noch einige Funktionen nachzureichen. Es ist zum Beispiel aktuell nicht möglich, ein Schlagwort komplett zu löschen. Auch die Umbenennung eines Schlagwortes ist aktuell noch nicht möglich. Außerdem habe ich mir vorgenommen, in den Miniaturbildkomponenten eine Markierung zu schaffen, die das Auffinden des aktiven Elementes vereinfachen soll. Gerade bei größeren Bildlisten kann man doch recht schnell den Überblick verlieren.

Sortierung der Bildlisten

Montag, März 3rd, 2014

Für die Sortierung von Bildlisten nach der Übereinstimmung der ausgewählten Filterkriterien musste ich den bisherigen Ablauf des Sortiervorgangs komplett verwerfen und neu implementieren. Die bisher eingesetzte einfache Lösung musste durch eine viel kompliziertere ersetzt werden. Diese hat nun allerdings einige Vorteile, die ich nicht mehr missen möchte.

Der größte Vorteil dabei ist, das die Sortierung robust gegenüber Änderungen ist. Wird zum Beispiel der Bildtitel verändert, so verändert sich automatisch die Position des Bildes in der Bildliste. Gerade für die Filterkriterien-Übereinstimmung ist dies total praktisch, da sich die Übereinstimmungen wahrscheinlich mit jeder Änderung an den Filterkriterien ändern werden. Ein weiterer Vorteil der neuen Sortierung ist, das der Zugriff auf die einzelnen Elemente beschleunigt werden konnte. Bisher musste nach der Ausführung einer Worker-Aufgabe die komplette Bildliste durchlaufen werden, um das entsprechende Foto wiederzufinden. Die Position des Bildes in der Bildliste lies sich leider nicht nutzen, da sich diese während der Ausführung der Aufgabe hätte ändern können. Da die interne Sortierung der Bildliste nun fest ist, kann jetzt durch eine binäre Suche jedes beliebige Element der Liste schnell gefunden werden.

Sortierte gefilterte Bildliste

Sortierte gefilterte Bildliste

Dadurch, das die Bildliste eines der zentralen Elemente des BVASystems ist, musste ich in den letzten beiden Wochen so ziemlich jede Funktion des Programmes verändern. Zuerst hoffte ich, das ich diese Änderungen nach und nach durchführen  könnte. Dies stellte sich allerdings als nicht praktikabel heraus. Es musste also alles auf einmal sein. Vor 2 Wochen sah das Programm daher total erbärmlich aus. Überall Zugriffsverletzungen, Fehler und sonstige komische Verhaltensweisen. Daher bin ich nun um so glücklicher, das die neue Sortierung einsatzbereit ist und das Programm wieder so funktioniert, wie es funktionieren soll.

Ausblick

Trotzdem habe ich mir für die nächsten 2 Wochen vorgenommen, nochmals alles gut zu testen und auftretende Fehler zu korrigieren. Außerdem werde ich ein weiteres ewiges offenes Problem, die Auswahl mehrerer Bilder, lösen. Ähnlich wie im Windows Explorer möchte ich,  wenn bei der Auswahl die Shift-Taste gedrückt wird, das alle Bilder, die sich zwischen den beiden angeklickten Fotos befinden, markiert werden.

Export von Fotos

Samstag, Februar 15th, 2014

Lange überfällig war beim BVASystem eine Funktion, mit der Bilder aus der Datenbank wieder auf Festplatte geschrieben werden können. Da ich die Funktion nun bereits relativ häufig vermisste, habe ich sie nun endlich umgesetzt. In der Version 2.1.6.78-dev, die ab jetzt hier heruntergeladen werden kann, ist die Export-Funktion enthalten. Die Bildfilterung wurde um 2 zentrale Funktionen erweitert, mit denen alle aktiven Filter deaktiviert bzw. gelöscht werden können. Eine weitere auffällige Änderung ist es, das die Sortierung der Bildliste nun über die Hauptmenüleiste festgelegt werden kann. Zu guter letzt habe ich wieder an der Testanwendung gearbeitet, so das ich nun in der Lage bin, das Löschen eines Bildes aus der Datenbank automatisiert zu testen.

Der Bildexport

Die Export-Funktion wurde in die Popupmenüs integriert, die über den Bildern oder Miniaturbildern geöffnet werden können. Genauso wie beim Bildimport, ist der Export für einzelne Bilder oder eine Bildauswahl möglich. Die für den Export notwendigen Parameter können in einem Dialog eingestellt werden. Der eigentliche Export wird natürlich über den Worker ausgeführt, damit die Anwendung weiterhin bedienbar bleibt.

Einstellungsdialog zum Bildexport

Einstellungsdialog zum Bildexport

Da meine Mutter häufig Probleme hat, ihre Fotos in der richtigen Größe per E-Mail zu versenden, habe ich mir überlegt, das in der Export-Funktion gleich eine Skalierung mit integriert sein könnte. Auch für mich ist diese Funktion nützlich, da ich meine Fotos auf 1500 Pixel Breite skaliere, bevor ich sie auf meiner Foto-Homepage verwende. Um möglichst viele Anwendungsfälle zu erfüllen, gibt es im BVASystem nun 4 Möglichkeiten, wie Fotos exportiert werden können. Natürlich kann das Foto wieder so exportiert werden, wie es in der Datenbank eingestellt wurde. Außerdem stehen 3 verschiedene Exportvarianten mit Skalierung der Bilder bereit. Es kann die Länge der langen Bildseite oder die Länge der kurzen Bildseite festgelegt werden.  Als drittes können die Fotos mit einem festen Skalierungsfaktor vergrößert bzw. verkleinert werden. Bei allen Skalierungsvarianten bleibt das ursprüngliche Seitenverhältnis des Bildes erhalten.

Ausblick

Als kleinen Ausblick habe ich bereits damit begonnen, die Sortierungsfunktionen des Programmes zu verändern. Im vorigen Blog schrieb ich bereits in was für einem Dilemma ich dort stecke. Da ich die Sortierung, gerade für die Bildfilterung, unabdingbar halte, werde ich mich in den nächsten Wochen damit auseinander setzen. Ich hoffe, das ich die großen Änderungen möglichst schnell umsetzen kann, damit ich mich hier bald mit einer neuen Version melden kann. 

Das Dilemma mit der Sortierung

Dienstag, Februar 11th, 2014

Ich habe mit fast jedem Blogeintrag hier eine neue Version vom BVASystem veröffentlicht. Heute möchte ich den Blog allerdings nutzen, um aufzuzeigen was für ein immenser Aufwand an einer Kleinigkeit hängen kann. Diese Kleinigkeit ist die Sortierung der Bildliste.

Ist-Zustand

Aktuell können 4 unterschiedliche Sortierungsreihenfolgen ausgewählt werden: Bildtitel aufsteigend und absteigend und Aufnahmedatum aufsteigend und absteigend. Bei Bildlisten aus der Datenbank funktionieren diese auch so wie gewünscht. Wird dagegen die Bildliste durch die Auswahl eines Verzeichnisses erstellt, so funktioniert die Sortierung nach dem Aufnahmedatum nicht. Der Grund dafür liegt in den nebenläufigen Prozessen des BVASystems.

Die Bildlisten werden generell losgelöst von der Programmoberfläche eingelesen, damit die Oberfläche  während des Einlesevorgangs weiterhin bedienbar bleibt. Bei der Auswahl eines Verzeichnisses dauert dieser Einlesevorgang recht lange, da jedes Bild geöffnet werden muss, um das Thumbnail und die Metadaten auszulesen. Daher habe ich den Einleseprozess in mehrere Stufen geteilt. Im ersten Schritt wird nur bestimmt, welche Dateien sich im gewählten Verzeichnis befinden. Im zweiten Schritt werden die Metainformationen ausgelesen und im dritten Schritt wird das notwendige Thumbnail erstellt. Nun ist es so, das die Sortierung bereits nach dem ersten Schritt durchgeführt wird, da die Bildliste nach diesem Schritt bereits in der Oberfläche angezeigt wird. Allerdings ist hier das Aufnahmedatum der Fotos noch nicht bekannt. Diese wird erst zusammen mit den Metadaten im zweiten Schritt ausgelesen.

Ausweg

Prinzipiell bieten sich 2 Lösungswege an. Der einfachere Weg ist es sicher, die Bildliste erst anzuzeigen nachdem die Metadaten aller Fotos ausgelesen wurden. Dies würde allerdings dazu führen, das das Programm deutlich langsamer wird. Also werde ich den komplizierteren Weg wählen müssen und einen Mechanismus schaffen, der die Sortierung sofort aktualisiert, sofern sich ein Aufnahmedatum geändert hat.

Was muss dafür alles angepasst werden?

Der wichtigste Punkt ist sicherlich, das die Bildliste nun unabhängig von der gewählten Sortierung gespeichert wird. Zusätzlich muss eine Indexliste erstellen werden, die die gewählte Sortierung repräsentiert. Alle Funktionen, über die Zugriff auf ein Listenelement erfolgt, müssen folglich angepasst werden. Wenn beispielsweise das dritte Element der Liste benötigt wird, muss in der Indexliste nachgeschaut werden, an welcher Position in der unsortierten Bildliste sich die gewünschten Daten befinden.

Damit die Indexliste bei einer Änderung des Aufnahmedatums oder Bildtitels angepasst werden kann, muss das Listenelement die Bildliste über Änderungen informieren. Sofern sich dadurch Positionen innerhalb der Bildliste verschieben, muss diese wiederum die Komponenten zur Anzeige informieren. Diese müssen nämlich ebenfalls aktualisiert werden. Zu guter letzt muss ebenfalls der Cache angepasst werden, der die Thumbnails verwaltet.

Insgesamt müssen für die geänderte Sortierung fast alle Kern-Komponenten des BVASystems modifiziert werden. Das folgende Bild soll die Zusammenhänge verdeutlichen.

Schaubild zur Listensortierung

Schaubild zur Listensortierung

Ausblick

Ich habe für die Änderungen die jetzt bevorstehen, keine weiteren Zwischenversionen der Bildverwaltung geplant. Eine halbfertige Umsetzung, wo Teile der Bildlistenanzeige nicht funktionieren, würde euch nichts bringen. Aktuell bin ich gerade dabei, die Lösung des Sortierungsdilemmas vorzubereiten. Wenn diese Vorbereitung abgeschlossen ist, werde ich nochmals eine  Programmversion veröffentlichen. Anschließend werde ich einige Zeit brauchen um alle Änderungen umzusetzen. Damit die ganze Frickelei nicht ohne neue Funktion bleibt, werde ich im Zuge dessen als drittes Sortierungskriterium die Filterungsübereinstimmung einführen. Dazu später allerdings mehr …

Arbeiten am Schlagwort-Konfigurationsdialog

Donnerstag, Januar 23rd, 2014

Mit dem Schlagwort-Konfigurationsdialog war ich bisher in zweierlei Hinsicht unzufrieden. Immer wenn ich ein Schlagwort einer Schlagwortkategorie zuordnen wollte, ärgerte ich mich, das dieses nur recht umständlich über die Funktion „Schlagwortkategorie editieren“ möglich war. Gerade bei der Zuordnung von mehreren Schlagworten verlor ich schnell die Lust und dachte sofort an den Schlagwort-Konfigurationsdialog, der eigentlich genau für diese Zuordnungsarbeit erschaffen wurde. Allerdings schaffte ich es bisher nicht, den Dialog soweit fertigzustellen. Des weiteren war es natürlich unschön, einen Dialog in der Anwendung zu haben, der nicht sinnvoll genutzt werden konnte. 

Schlagwortkonfigurationsdialog

Schlagwortkonfigurationsdialog

Damit ist nun endlich Schluss, denn mit dem Schlagwort-Konfigurationsdialog können jetzt Schlagworte zu Schlagwortkategorien zugeordnet werden. Dazu wählt ihr als erstes auf der linken Seite eine Schlagwortkategorie aus. Auf der rechten Seite befindet sich eine Schlagwortcloud, die alle Schlagworte enthält, die dem System bekannt sind. Schlagworte, die mit der gewählten Kategorie verknüpft sind, werden farbig dargestellt. Die nicht verknüpften Schlagworte sind grau. Durch einfaches Anklicken eines Schlagwortes kann dieses mit der Kategorie verknüpft werden. Auf gleicher Art und Weise können Verknüpfungen gelöscht werden. Nachdem alle gewünschten Schlagworte ausgewählt wurden, können die Änderungen über den Knopf links oben in der Werkzeugleiste gespeichert werden. 

Außerdem habe ich in den letzten Tagen ein weiteres Filterkriterium angelegt. Es kann nun nach der Kamera, die bei der Aufnahme verwendet wurde, gefiltert werden. Das Kriterium, ist dabei so angelegt, das in einer Auswahlliste alle Kameramodelle angezeigt werden, die dem System bekannt sind. An dem Schlagwort-Filterkriterium habe ich noch einige kleinere Verbesserungen vorgenommen. Die einzelnen gewählten Schlagworte werden nun durch 2 senkrechte Markierungen verbunden, damit man leichter erfassen kann, welche Elemente zum gleichen Filter gehören.

Für die nächste Version habe ich mir vorgenommen, kein weiteres Filterkriterium zu schaffen. Ich möchte lieber eine Funktion, die ich mir schon recht lange vorgenommen habe, implementieren. Das BVASystem soll in der Lage sein, ein oder mehrere Bilder wieder aus der Datenbank zu exportieren. Dabei soll eine Zielgröße auswählbar sein, so das die Fotos nicht mehr manuell verkleinert werden müssen, wenn man sie beispielsweise per E-Mail verschicken möchte. Außerdem wünsche ich mir eine Funktion, mit der alle Filter auf einmal gelöscht werden können. Nach dem gleichen Prinzip soll es auch möglich sein, alle Filter auf einmal zu deaktivieren.

Filterung nach Schlagworten

Mittwoch, Januar 8th, 2014

Nachdem ich meine Erkrankung, die mich Weihnachten flach gelegt hat, überstanden hatte, beschäftigte ich mich über den Jahreswechsel hinweg mit der Bildfilterung. Es ist mir wichtig, das die noch neue Funktion nach und nach mit vielen weiteren Kriterien erweitert wird. Als erstes neues Filterkriterium wählte ich die Schlagworte, da ich finde, das die Schlagworte ein zentraler Bestandteil der Bildverwaltung sind.

Während der Umsetzung fiel mir dann auf, das ich mir etwas kompliziertes ausgesucht hatte. Ich hatte bisher nicht vorgesehen, das bei der Filterdefinition einzelne Filter ihre Höhe verändern können. Außerdem wollte ich natürlich auch wieder das Popup-Fenster, welches Schlagwortvorschläge anzeigt, wiederverwenden. Dafür musste ich die Bindung der Komponeten an die Datenschicht überarbeiten, da  dort bisher keine Verbindung zur Datenbank möglich war. 

Filterung nach Schlagworten

Filterung nach Schlagworten

Die Filterung nach Schlagworten funktioniert prinzipiell genauso wie die bereits bekannten Filterkriterien. Es können allerdings mehrere Schlagworte in einem Filter zusammen ausgewählt werden.  Die Definition mehrerer Schlagworte zur Filterung erfolgt nach einander. Nach der Auswahl eines Schlagwortes, wird das Filterelement um einen Eintrag erweitert und das Eingabefeld geleert. Dort können anschließend weitere Schlagworte eingegeben werden. Schlagworte, welche sich nicht im Vorschlag-Popup befinden, können mit der „Enter“-Taste bestätigt werden.  Um den Filter dann zu erfüllen muss das jeweilige Foto alle gewählten Schlagworte haben.

Neu ist ebenfalls die Möglichkeit, das nicht mehr benötigte Filter gelöscht werden können. Dafür habe ich hinter jeden Filter einen kleinen Knopf integriert, der ein Mülltonnen-Symbol zeigt. Für einen einfachen Klick kann die jeweilige Filterdefinition gelöscht werden. Versucht man das letzte Filterelement eines Kriteriums zu löschen, so bleibt das Element bestehen und wird neu initialisiert. Für eine erneute Definition eines Filters soll das erste Element immer sofort bereitstehen.

Jahresfazit 2013

Dienstag, Dezember 31st, 2013

Das Jahr 2013 ist aus Sicht des BVASystems perfekt verlaufen. Fast alle Funktionen, die ich mir im letzten Jahresfazit gewünscht habe, konnten umgesetzt werden. Besonders stolz bin ich auf die einfache und schnelle Verschlagwortung von Fotos und die noch relativ junge Bildfilterung.

Zusätzlich konnte ich den Werkzeugkasten mit 3 Werkzeugen (Lupe, Navigation und Histogramm) implementieren. Außerdem ist es jetzt möglich, die hierarchielosen Schlagworte nachträglich durch die Schlagwortkategorien mit einer Hierarchie zu versehen. Dadurch entsteht eine weitere Ansicht auf die Datenbank und soll das Auffinden von Bildern vereinfachen.  Die Vollbildansicht wurde optisch überarbeitet und auch an der Bildinformationsansicht wurde weiterentwickelt. Bereits Anfang des Jahres wurde die Routine zum Laden der Miniaturbilder überarbeitet. Es werden nur noch die Miniaturbilder im Speicher vorgehalten, die auch zur Anzeige benötigt werden. 

BVASystem zum Jahresabschluss 2013

BVASystem zum Jahresabschluss 2013

Mein persönliches Fazit für das Jahr lautet: Das BVASystem wird langsam erwachsen. Die wichtigsten Verwaltungsfunktionen sind fertig implementiert. Es sind zwar noch reichlich Ideen vorhanden, um das System zu verbessern, aber die wichtigsten Grundfunktionen sind nun definitiv alle vorhanden.

Etwas unzufrieden bin ich eigentlich nur mit dem Jahresabschluss. Ich wollte meinen Resturlaub nutzen, um etwas mehr Zeit für das BVASystem zu haben. Schlussendlich lag ich dann aber krank im Bett. An Arbeiten war nicht einmal im Traum zu denken. 

Bevor ich krank wurde, habe ich es aber noch geschafft, den Arbeitsplan für die nächsten 3 Monate aufzustellen. Es wird sich hauptsächlich um die Verbesserung der Bildfilterung drehen. Ich werde zusätzliche Kriterien zur Filterung implementieren. Außerdem sind Funktionen geplant, die das Handling der Bildfilter vereinfachen. Für den Rest des Jahres habe ich mir noch keinen wirklichen Plan zurecht gelegt. Ich denke aber, das die meiste Zeit für die Verbesserung/Erweiterung der bestehenden Funktionen reserviert sein sollte.

BVASystem Version 2.1.6

Montag, Dezember 16th, 2013

Es hat nun zwar etwas länger gedauert die nächste BVASystem Version ohne „dev“ Zusatz fertigzustellen, aber dafür hat sich auch einiges geändert. Ganz frisch fertig geworden ist der riesige Funktionsbereich zur Bildfilterung. Außerdem neu sind die Schlagwortrubriken, die Verschlagwortung mehrerer Fotos auf einmal und das Histogramm-Werkzeug. Die neue Version 2.1.6 kann im Download-Bereich ab sofort heruntergeladen werden. Die Neuerungen im Detail:

Bildfilterung

Der größte Teil der Arbeit steckt in dem neuen Bereich zur Bildfilterung. Mit ihm soll es möglich sein, ein gesuchtes Bild schnell und einfach zu finden. Generell teilt sich die Bildfilterung in drei Bereiche. Es können Filter definiert werden, die auf Meta-, Nutzer- oder Programmdaten basieren. Metadaten sind Informationen, die dem Bild entnommen werden konnten. Nutzerdaten wurden vom Nutzer eingegeben, während Programmdaten vom BVASystem selbst errechnet werden. In jedem der 3 Bereiche können durch einen einfachen Klick Filter aktiviert bzw. deaktiviert werden. Notwendige Parameter lassen sich in den jeweiligen Steuerelementen auswählen. Nachdem eine Änderung an den Filtereinstellungen vorgenommen wurde, startet ein nebenläufiger Prozess, der für jedes Foto prüft ob die Filterkriterien passen. Die Ergebnisse werden in der Miniatur- und Filmstreifenansicht dargestellt. Die eigentliche Bildliste bleibt unverändert bestehen. Es werden nur die passenden Fotos hervorgehoben, währen nicht passende Bilder ausgegraut werden.

Miniaturbilde mit aktivierter Bildfilterung

Miniaturbilde mit aktivierter Bildfilterung

Schlagwortrubriken

Mit den Schlagwortrubriken ist es möglich, ein System in die normalerweise hierarchielosen Schlagworte zu bringen. Ich persönlich habe mir eine Schlagwortrubrik „Urlaubsreisen“ angelegt, die wiederum Unterrubriken für jeden Aufenthaltsort besitzen. Allgemeinere Schlagworte, wie zum Beispiel „Strand“, habe ich in die Schlagwortrubrik „Orte“ einsortiert. Außerdem habe ich mir eine Rubrik „Personen“ mit den Unterrubriken „Familie“, „Freunde“, „Bekannte“, usw. angelegt. Suche ich nun also zum Beispiel ein Bild, auf dem eines meiner Kinder drauf ist, schaue ich in die Schlagwortrubrik „Familie“. Sind dort zu viele Fotos in der entsprechenden Bildliste, so grenze ich sie durch die Bildfilterungsfunktion weiter ein, bis ich das gesuchte Bild gefunden habe. 

Verschlagwortung mehrerer Fotos

Beim Verschlagworten meiner Urlaubsbilder fiel mir auf, das dem BVASystem eine Funktion fehlte, mit der mehrere Fotos auf einmal mit Schlagworten verknüpft werden können. Ich wollte für Urlaubsbilder das Schlagwort „Holland“ festlegen und musste dafür bei jedem Bild mit einem Klick das Schlagwort aktivieren. Nun kann ich in der Miniaturbild- oder Filmstreifenansicht eine beliebige Bildmenge auswählen und von dort aus über das Popup-Menü einen Dialog zur Verschlagwortung öffnen. Alle Schlagworte, die ich dort auswähle, werden für alle markierten Bilder gesetzt.

Histogramm-Werkzeug

Bei der Bewertung von Fotos betrachte ich ganz gerne das Histogramm des Bildes, um einen besseren Überblick  über die Farbverteilung zu erhalten. Bisher musste ich dafür das Foto immer in meinem Bildbearbeitungsprogramm öffnen. Dieser Schritt entfällt nun, da ich jederzeit in einer der Bildansichten das Histogramm-Werkzeug öffnen kann.

Ein Ende in Sicht

Freitag, Dezember 6th, 2013

Nach einigen etwas zähen Wochen, hab ich es heute nun endlich geschafft, die Grundfunktionen zur Bildfilterung fertigzustellen. Die vorläufig ersten drei Filterungsmöglichkeiten können alle genutzt werden, um die Menge Fotos der aktiven Bildliste einzugrenzen. Wie bereits gesagt, werden dabei allerdings keine Bilder aus der Liste entfernt. Fotos bei denen die gesetzten Filter nicht passen, werden ausschließlich optisch anders dargestellt als die Bilder, bei denen die Filter übereinstimmen. 

Bildfilterung nach Fotos deren Bildtitel Düne enthalten

Bildfilterung nach Fotos deren Bildtitel Düne enthalten

Funktionsweise der Bildfilterung

Die Bildfilterung läuft in einem neben läufigen Prozess, der im BVASystem integriert ist. Sobald ihr einen Filter setzt, wird der Prozess aktiv. Dieser prüft nacheinander für jedes Bild, ob der Filter passt oder nicht. Notwendige Daten, wie zum Beispiel den Bildtitel, erfragt sich der Prozess bei der Hauptanwendung. Kennt die Hauptanwendung die angeforderten Daten nicht, zum Beispiel ist die Information über die mittlere Helligkeit nicht für jedes Bild einer Bildliste verfügbar, so bestimmt der Prozess die notwendigen Daten selber. Im Falle eines Datenbankbildes wird der jeweilige Wert aus der Datenbank abgefragt. Bei Fotos von der Festplatte wird der Wert einfach am Bild bestimmt bzw. berechnet. Nachdem für ein einzelnes Foto feststeht, ob die Filter passen oder nicht, wird die Hauptanwendung über das Ergebnis informiert. Diese aktualisiert dann die Oberfläche und zeigt das Filterergebnis an. Währenddessen bestimmt der Prozess bereits die Filterung für das nächste Bild.

Deaktiviert ihr einen Filter wieder, so wird das Ergebnis nicht gänzlich „entsorgt“. Solange die Bildliste nicht geändert wird, steht das Filterergebnis weiterhin auf Abruf zur Verfügung. Aktiviert ihr den Filter ein zweites Mal, so wird nicht alles neu berechnet. Es wird auf die alten Ergebnisse zurückgegriffen. Dies geht um einiges schneller. Gerade bei der Filterung nach der mittleren Helligkeit macht sich dies bemerkbar, da keine Datenbankabfragen oder Berechnungen durchgeführt werden müssen.

Ausblick

Da ich ab heute, bis zum Ende des Jahres Urlaub habe, hoffe ich, das ich etwas mehr Zeit mit der Entwicklung des BVASystems verbringen kann. Es ist geplant, die neuen Funktionen nochmals ausgiebig zu Testen und auftretende Fehler zu korrigieren. Außerdem habe ich mir vorgenommen, die Optik der Bildfilterung nochmals etwas zu optimieren. Zu guter letzt möchte ich eine Statuskomponente implementieren, die anzeigt ob gerade eine Bildfilterung durchgeführt wird. Im nächsten Jahr werde ich ganz sicher die Bildfilterung weiter ausbauen. Es sind noch viel mehr Filterkriterien notwendig, damit man das System sinnvoll einsetzten kann.

Verschlagwortung mehrerer Fotos

Donnerstag, November 21st, 2013

Eine wichtige Funktion, die mir bei der Arbeit mit dem BVASystem fehlte, war die Möglichkeit mehrere Fotos mit nur einer Aktion zu Verschlagworten. Beispielsweise tagge ich alle meine Urlaubsbilder vom Hollandurlaub mit dem Schlagwort Holland. Dafür musste ich bisher alle Bilder einmal durchklicken und dort mit einem Klick das Holland Schlagwort auswählen. Nun gibt es die Möglichkeit, dieses Ziel einfacher zu erreichen. Dafür müssen in der Bildliste die Fotos markiert werden, für die Schlagworte gesetzt werden sollen. Anschließend kann per Popup-Menü ( Markierte Bilder -> mit Schlagworten verknüpfen) folgender Dialog geöffnet werden.

Verschlagwortung mehrerer markierter Bilder

Verschlagwortung mehrerer markierter Bilder

Dort wählt man, wie auch bei der einfachen Verschlagwortung, die gewünschten Schlagworte aus. Bereits gesetzte Schlagworte werden in dem Dialog natürlich angezeigt. Ausgegraute Schlagworte bedeuten dabei, das diese Schlagworte bei einem oder mehreren, aber nicht allen, Fotos der Auswahl bereits gesetzt sind. Sollen diese Schlagworte für alle Fotos gültig sein, kann man sie durch einen einfachen Klick aktivieren. Ebenso ist es möglich, mit der Funktionalität Schlagworte zu löschen.

Weitere Änderungen

Die Verschlagwortung von mehreren Fotos habe ich eigentlich nur umgesetzt, da ich es nicht mag, wenn ich in meinem Release-Rhythmus keine komplette Funktion fertigstellen kann. Der Großteil meiner Entwicklungszeit ging in den letzten Wochen natürlich wieder für die Bildfilterung drauf. Nun bin ich soweit, das der nebenläufige Arbeitsprozess, der die Filtervergleiche durchführen soll, soweit fertig ist, das er „zufällige“ Filterergebnisse generiert. Wählt man in der aktuellen Version einen Filter aus, so wird nacheinander jedes Foto der aktiven Bildliste dem Arbeitsprozess übergeben. Dort wird per Zufall ein Filterergebnis (0, 1 oder 2 Filter stimmen überein) generiert und der Hauptanwendung zur Anzeige übergeben. Mir ist klar, das das Ergebnis für euch befremdlich sein wird, da es eben noch keine richtigen Filterergebnisse sind. Ich allerdings bin total froh, das langsam ersichtlich wird, das mein Konzept zur Bildfilterung funktioniert.

Ausblick

Ich denke, das die heutige Version, die letzte Version mit unvollständiger Bildfilterungsfunktion ist. Für die nächste Version habe ich mir vorgenommen, das der Arbeitsprozess auf die definierten Filter zugreifen kann, das er die Filtervergleiche durchführt und das diese dann in der Oberfläche angezeigt werden. Das eigentliche Ziel liegt also in greifbarer Nähe. Anschließend habe ich mir eine Version offen gehalten, in der ich mich Hauptsächlich um Fehlerbeseitigungen kümmern kann, damit ich dieses Jahr noch eine Version ohne „dev“ Zusatz veröffentlichen kann.