Posts Tagged ‘Neue Version’

Viel Arbeit für eine kleine Änderung

Donnerstag, September 11th, 2014

Eigentlich hatte ich ja vor, wieder die meiste Zeit in die nicht sichtbaren Änderungen zu investieren. Allerdings habe ich mich da diesmal total verkalkuliert. Als kleines sichtbares Gimmick hatte ich mir überlegt, nach langer Zeit wieder mal ein neues Element zur Bildfilterung zu implementieren. Dazu hatte ich mir die Brennweite, mit der die Fotos aufgenommen wurden, herausgesucht. Das Grundgerüst zur Bildfilterung stand eigentlich recht schnell, aber dann fiel es mir extrem schwer, ein geeignetes Oberflächenelement zu erstellen, mit dem die Filterparameter eingestellt werden können.

Schnell legte ich mich darauf fest, ähnlich wie bei dem Filterelement „mittlere Helligkeit“ vorzugehen. Dort kann durch einen Schieberegler mit zwei Schiebern der Bereich eingestellt werden, in dem sich die gesuchten Bilder befinden sollen. Allerdings hat diese Vorgehensweise bei der Brennweite einen entscheidenden Nachteil. Die gängigen Objektive, die es für Kameras zu kaufen gibt, bewegen sich in einem Bereich von 0-300 Millimeter Brennweite. Im Weitwinkelbereich, der sich bis etwa 50 Millimeter Brennweite erstreckt, führt eine Änderung um wenige Millimeter zu total unterschiedlichen Bildern. Im Telebereich dagegen ist es nicht so entscheidend, ob der Wert um 10 Millimeter größer oder kleiner ist. Die Skala des Schiebereglers sollte also nicht linear ansteigen, da ansonsten im Weitwinkelbereich nicht genau genug ausgewählt werden kann.

Daher habe ich mich entschieden, einen drei geteilten Schieberegler zu erstellen.  Das erste Drittel erfasst den Bereich von 0 bis 20 Millimeter, der mittlere Bereich erstreckt sich von 21 bis 100 Millimeter Brennweite und der letzte Bereich dient zur Auswahl der Brennweiten von 101 bis 999 Millimeter Brennweite. Ich habe ein deutlich größeres Maximum gewählt, damit auch Objektive mit exotischen Brennweiten mit dem Filter erfasst werden können. Trotzdem kann der gesuchte Bereich im Weitwinkelteil sehr genau ausgewählt werden. Damit die Komponente intuitiv bedienbar bleibt, wird unter dem Schieberegler der ausgewählte Bereich in Textform ausgegeben.

Filterkriterium Brennweite

Filterkriterium Brennweite

Da ich in die Komponente zur Auswahl des Bereiches viel Arbeit gesteckt habe, werde ich in den nächsten Wochen die Brennweite auch als Kriterium in der Ansichtseinschränkung nutzbar machen. Da die Komponente zur Auswahl bereits fertig ist, sollte diesmal wieder mehr Zeit bleiben, um die internen Änderungen voranzutreiben.

BVASystem Version 2.2.1

Sonntag, Juli 13th, 2014

Die heutige Version des BVASystems, ist für mich etwas ganz besonderes, denn es ist die insgesamt einhundertste Version, die ich hier auf der Homepage veröffentlicht habe. Von diesen 100 Versionen waren 13 Versionen vom alten BVA-System 1.0. Die restlichen Versionen gehen alle auf das Konto dieses Blogs, den ich mit dem Start vom BVASystem 2.0 ins Leben gerufen habe. Ehrlich gesagt war der Blog die beste Idee, die ich jemals hatte. Ich finde es zum Beispiel gerade jetzt total interessant, in alten Entwicklungsständen zu stöbern und diese mit der aktuellen Version zu vergleichen. Es ist schon erstaunlich, auf was für eine Größe das BVASystem herangewachsen ist.  Nun aber wieder zur aktuellen Version:

Was ist neu in der Version 2.2.1

Die größte Änderung, die ich in den letzten Monaten umgesetzt habe ist die Ansichtseinschränkung. Mit dieser Funktion können unerwünschte Fotos aus den Bildlisten komplett ausgeblendet werden. Mir war diese Funktion so wichtig, damit ich die Bilder meiner Kinder ausblenden kann, wenn ich mir meine eigenen Fotos ansehen möchte. Des weiteren habe ich die Schlagwortverwaltung um weitere Funktionen erweitert. So ist es nun möglich Schlagworte umzubenennen, Schlagworte zu löschen und es können sogar 2 ähnliche Schlagworte zusammengeführt werden. Außerdem habe ich mit einigen Änderungen begonnen, die noch keine sichtbaren Früchte tragen. Wie versprochen habe ich erste Vorarbeiten durchgeführt, damit langfristig alle Datenbankfunktionen auch bei Bildern auf der lokalen Festplatte zur Verfügung stehen. Zu guter letzt habe ich mir eine eigene Scrollbar und eine eigene Scrollbox-Komponente geschrieben. Sie ersetzen nun bereits zum Großteil die hässlichen Standard-Scrollbars. 

BVASystem 2.2.1 - Einzelbildansicht

BVASystem 2.2.1 – Einzelbildansicht

Ausblick

Da ich es noch nicht ganz geschafft habe, überall im Programm meine neue Scrollbar einzubinden, steht dieses ganz oben auf meiner Wunschliste. Außerdem möchte ich auch weiterhin die Möglichkeiten zur Bildfilterung und auch der Ansichtseinschränkung erweitern. Gerade die Ansichtseinschränkung ist mit den 2 vorhandenen Kriterien noch ziemlich dünn. Der dritte Punkt, an dem ich arbeiten möchte ist etwas schwerer zu erklären. Das BVASystem hat aktuell eine sehr große technische Hürde. Wenn man das Programm wirklich testen möchte, so muss zuerst ein Datenbanksystem installiert und eingerichtet werden. Selbst wenn man dazu technisch gesehen in der Lage wäre, so wird man diesen Aufwand scheuen. Eine Lösung für das Problem wäre es, wenn ich eine Demo-Datenbank hier auf der Homepage installiere. Leider ist dies in der aktuellen Form nicht möglich, da ich dafür zu viele Datenbankrechte offen legen müsste. Daher habe ich mir etwas überlegt, damit ich beim Arbeiten an der lokalen Datenbankdatei auch dem Ziel Demo-Datenbank näher komme. Ich denke allerdings nicht, das es bis zu nächsten stabilen Softwareversion dort eine fertige Lösung geben wird. 

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.

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.

Optik für die Bildfilterung

Dienstag, Oktober 29th, 2013

Durch das Erreichen des nächsten Meilensteins, lässt sich nun schon recht gut erkennen, wie die fertige Funktion zur Bildfilterung aussehen wird. Im Speziellen wurde in den letzten Wochen die Optik für die Bildlisten angepasst. Vor allem ist nun erkennbar, das Fotos, die nicht zu den Filterkriterien passen, nicht vollständig ausgeblendet werden. Ich erachte es als Vorteil, wenn trotzdem alle Fotos angezeigt werden. Habe ich zum Beispiel 5 Filter definiert und kein Foto der Liste erfüllt alle Filter, so erhalte ich bei dem vom mir gewählten System trotzdem die Fotos angezeigt, die die Filterkriterien bestmöglichst erfüllen.

Wie sieht eine gefilterte Bildliste aus? 

Sobald mindestens 1 Filter aktiviert wurde, wird die Miniaturbildansicht durch ein Steuerelement auf der rechten Seite ergänzt. Das Element zeigt in Form eines Balkens, wie viele der gesetzten Filter bei dem jeweiligen Foto übereinstimmen. Außerdem wird das Miniaturbild mit reduziertem Kontrast und erhöhter Helligkeit angezeigt, sofern das Bild nicht alle aktivierten Filter erfüllt. Bewegt man die Maus über eines der Miniaturbilder, wird das Foto wieder unverändert angezeigt.

Miniaturbilder mit aktiver Bildfilterung

Miniaturbilder mit aktiver Bildfilterung

Was steht als nächstes an?

Als nächstes werde ich mich wohl daran machen, das eigentliche System der Filterung umzusetzen. In der aktuellen Version erfolgt noch keinerlei Prüfung, ob ein Foto ein Filterkriterium erfüllt. Alle Bilder werden einfach als „unpassend“ markiert, da dies zum Test der Oberflächenfunktionalitäten notwendig war. Ich muss also Funktionen schaffen, die die jeweiligen Filtertypen prüfen und diese in die bestehenden Bildladefunktionen integrieren. Schließlich soll auch die Bildfilterung nicht das Programm blockieren, wenn die notwendigen Berechnungen durchgeführt werden. 

Beginn einer etwas längeren Durststrecke

Freitag, Oktober 11th, 2013

Mit den letzten veröffentlichten Versionen der Bilddatenbank konnte ich fast immer verkünden, was für tolle neue Funktionen implementiert wurden. Mit dem heutigen Update und wahrscheinlich den folgenden auch, sieht das leider anders aus. Die letzte noch offene Baustelle, die ich noch in diesem Jahr schließen will, ist die Bildfilterung. Was nützt die beste Erfassung von Bildern und dazugehörigen Daten, wenn man sie nicht wieder gezielt suchen kann? Leider ist die Filterung, so wie ich sie mir vorstelle, eine sehr große Aufgabe, so das ich sie nur in mehreren Teilschritten umsetzen kann.

Was ist bisher umgesetzt?

Bereits vor einiger Zeit hatte ich damit begonnen, auf der rechten Seite der Anwendung einen Bereich zu schaffen, in dem Filter festgelegt werden sollen. Die zu Testzwecken dort vorhandenen blauen Kästen gibt es nun nicht mehr. Ich habe mich bei jedem der drei großen Filterbereiche (Filterung nach Metdaten, Filterung nach Nutzerdaten, Filterung nach Programmdaten) auf einen Filter festgelegt, den ich als erstes umsetzen möchte. Folgende Filter werden die ersten Filter sein, mit denen im BVASystem gearbeitet werden kann:

  • Aufnahmedatum
  • Bildtitel
  • Mittlere Helligkeit

Für alle drei habe ich die Oberfläche entworfen, mit der die Parameter der Filter festgelegt werden können. Alle Filter haben vor den Parametern eine Auswahlbox, mit der später der Filter bequem aktiviert bzw. wieder deaktiviert werden soll. Weitere Filter des gleichen Typs können über den mit „+“ beschrifteten Knopf hinzugefügt werden.

Oberfläche der ersten Bildfilter

Oberfläche der ersten Bildfilter

Was muss noch implementiert werden?

Ein Großteil der Arbeiten, die noch erledigt werden müssen, liegen im Hintergrund und werden kaum sichtbar wahrnehmbar sein. Zum einen müssen die eingestellten Filter in der Datenschicht des Programmes zwischengespeichert werden. Nachdem dies erledigt ist, muss für die Bildliste natürlich geprüft werden, für welches Foto der Liste die Filterkriterien übereinstimmen. Die dort bestimmten Filterergebnisse müssen dann natürlich in der Oberfläche dargestellt werden. Hierzu sind Änderungen an den Miniaturbildern, dem Filmstreifen, dem Einzelbild und auch der Bildinformationsansicht notwendig. Sobald die ersten Filter genutzt werden, kann ich mich austoben und eine ganze Reihe weiterer Filter implementieren. Jedenfalls habe ich dort bereits sehr viele Ideen.

Welche Schritte sind für die nächsten Wochen zu erwarten?

Da ich es nicht mag, wenn ich bis zum nächsten Update keinerlei sichtbare Änderungen erzeuge, habe ich mir vorgenommen, testweise die Darstellung eines Fotos, welches nicht den Filterkriterien entspricht, zu implementieren. Diese Bilder sollen nämlich nicht komplett ausgeblendet werden. Meine Idee ist, das die Bildanzahl der Bildliste konstant bleibt und die „passenden“ Fotos so dargestellt werden, das sie sofort ins Auge springen. Dazu später mehr … 

Aktualisierte Oberfläche

Dienstag, März 5th, 2013

Das heutige Versionsupdate bringt eine deutliche Änderung an der Oberfläche mit sich. Im Dezember letzten Jahres habe ich damit begonnen, eine animierte Pagecontrol-Komponente zu entwickeln. Mein Ziel war es, das die nicht immer benötigte Baumansicht bei Bedarf ausgeblendet werden kann. Dadurch sollte mehr Platz für die Bildansichten geschaffen werden. Nebenbei wollte ich noch ein Problem des bisher eingesetzten Pagecontrols beseitigen.  Dort wurde nämlich der Focus nicht sichtbar dargestellt. Beide Ziele konnte ich nun zufriedenstellend erreichen, so dass in der Version 2.1.3.59-dev das alte Pagecontrol nicht mehr vorhanden ist.

Animiertes Pagecontrol

Startet man das BVASystem das erste mal, nach der Installation der neuen Version, fällt sofort die geänderte Oberfläche ins Auge. Die beiden Seiten der Baumansicht sind nun vertikal ausgerichtet. Die Baumansicht ist festgepinnt, so das noch keine Animationen erfolgen. Zum Ausblenden der Baumansicht muss dann zuerst die Pin-Nadel gelöst werden. Verlässt man anschließend mit der Maus den Bereich der Baumansicht, so wird diese ausgeblendet. Ausnahme hierbei ist, wenn die Baumansicht den Eingabefokus besitzt. Dann nämlich bleibt die Ansicht stehen, bis sich der Eingabefokus ändert. Dies soll verhindern, das der Bereich ausgeblendet wird, wenn man eigentlich eine Tastatureingabe vornehmen möchte. Beim Beenden des Programms wird der Status (angepinnt/nicht angepinnt) der Baumansicht gespeichert und beim nächsten Programmstart genauso wieder eingestellt. 

BVASystem mit geöffneter Baumansicht

BVASystem mit geöffneter Baumansicht

Damit die Optik einheitlich erscheint, wurde das Pagecontrol für die Bildansichten ebenfalls ersetzt. Eine Animation ist bei diesem Steuerelement nicht möglich, da es wenig sinnvoll ist, den Hauptbereich der Anwendung auszublenden.

BVASystem mit minimierter Baumansicht

BVASystem mit minimierter Baumansicht

Auf den beiden Bildern sieht man deutlich, wie durch den gewonnenen Platz, eine größere Anzahl von Miniaturbildern angezeigt werden kann. Mein Ziel habe ich also erreicht.

Änderungen an der Bildinformationsansicht

Damit habe ich nun endlich die erste große Baustelle abgeschlossen und kann mich auf die nächste große Baustelle stürzen. Bereits im letzten Artikel hatte ich angekündigt, die Logik hinter den Bildinformationspanel zu aktualisieren. Gerade gestern bin ich damit fertig geworden, die neuen Algorithmen zu integrieren. Und nicht nur das: Ich habe es ebenfalls geschafft, das nun einzelne Panel aus- und auch wieder eingeblendet werden können. Prinzipiell ist es möglich, Panel in beliebiger Reihenfolge ein- und auszublenden. Allerdings ist es nur bedingt möglich, das ausgeblendete Panel in gleicher Größe und Position wieder einzublenden. Ändert sich die Struktur der Ansicht zu stark, wird das Panel dann neu initialisiert. Somit entsteht immer eine valide Ansicht, bei der die gewählten Bildbereiche in möglichst optimaler Größe platziert werden.

Ausblick

In der nächsten Version habe ich mir vorgenommen, einige kleinere Bugs/Unschönheiten in der Oberfläche zu beseitigen. Außerdem habe ich vor, mich weiterhin auf die Großbaustelle Bildinformationsansicht zu konzentieren. In  rund 3 Wochen soll es möglich sein, zwei Bildinformationspanel per Drag&Drop zu tauschen. Bis dahin steht aber noch einiges an Arbeit vor mir …