Archive for the ‘Neue Programmversion’ Category

Überarbeitete Vollbildansicht

Donnerstag, Januar 24th, 2013

Die alte Vollbildansicht stammt noch aus einer Zeit, wo ihre einzige Aufgabe darin bestand, ein einzelnes Foto anzuzeigen. Durch die Erweiterungen, die ich in den letzten beiden Jahren implementiert habe, wurde es langsam dringend notwendig, die Ansicht auch optisch zu überarbeiten. Wichtig waren mir vor allem 2 Änderungen. Zum einen nervte der gut gemeinte Hinweis, wie der Dialog geschlossen werden konnte und als zweites fehlte die Information, welche Position das angezeigte Foto in der Bildliste hat. 

In der ab heute verfügbaren Entwicklerversion 2.1.3.57 habe ich beide Probleme gelöst. Den Hinweis habe ich durch einen „Ansicht schließen“-Knopf im Überschrift-Bereich des Dialoges ersetzt. Außerdem habe ich der Ansicht eine Statusleiste spendiert, in der die Position innerhalb der Bildliste angezeigt wird. 

Überarbeitete Vollbildansicht

Überarbeitete Vollbildansicht

Desweiteren habe ich an eigentlich allen Baustellen, die ich begonnen habe, weitergearbeitet. Die Schlagwort-Komponente sieht optisch langsam genauso aus, wie ich es mir vorgestellt habe.  Bei der Bildinformationsansicht habe ich die Knöpfe im Kopfbereich ausgetauscht. Nun ist deutlicher zu erkennen, welche Bildinformation ein- bzw. ausgeblendet ist. Zu guter letzt habe ich mir noch ein Konzept überlegt, wie ich bei der Testanwendung Parameter speichern kann.

In den nächsten Wochen werde ich ähnlich weiterarbeiten wie bisher. Als erstes werde ich das Konzept für die Testanwendung umsetzen. Anschließend werde ich dann wieder einen Teil der Zeit mit der Schlagwortkomponente und dem Bildinformationspanel verbringen. Wahrscheinlich werde ich den Focus auf die Bildinformationspanel legen, damit ich die Anzahl der offenen Punkte endlich mal wieder reduzieren kann.

Neugestaltung der Funktion zum Einlesen von Miniaturbildern

Sonntag, Januar 6th, 2013

Mit dem ersten Versionsupdate des Jahres 2013 gibt es gleich größere Veränderungen an dem BVASystem. Die freie Zeit zwischen den Feiertagen habe ich genutzt, um die Funktion zum Einlesen von Miniaturbildern komplett zu überarbeiten. Außerdem wurde mit der Umsetzung der Schlagwortfunktionalität begonnen, so das nun ein erster Prototyp der Komponente zum Anzeigen von Schlagwörtern begutachtet werden kann.

Einlesen von Miniaturbildern

Bisher war es so, das alle Miniaturbilder einer Bildliste nacheinander erstellt und im Arbeitsspeicher des Rechners zwischengespeichert wurden. Dies hatte zur Folge, das die Bilddatenbank bei großen Bildlisten sehr viel Arbeitsspeicher verbrauchte. Außerdem war die Reihenfolge, mit der die Bilder erstellt wurden, alles andere als optimal. Wollte man in der Liste die letzten Bilder sehen, so musste man warten, bis alle anderen davor eingelesen wurden.  Diese beiden Missstände waren für mich Grund genug, das Einlesen der Miniaturbilder zu überdenken.

In der jetzigen Version ist es so, das das Programm der Miniaturbild-Ladefunktion mitteilt, welche Bilder gerade zur Anzeige benötigt werden. Diese benötigten Bilder werden dann sofort eingelesen. Fotos, die gerade nicht mehr benötigt werden, werden von der Ladefunktion wieder freigegeben. Sobald sie wieder benötigt werden, werden sie wieder neu erstellt. Bei Bildern aus der Datenbank ist das erneute Laden kein Problem, denn da die Bilder bereits in der richtigen Größe vorliegen, geht dies sehr schnell. Kommen die Bilder hingegen von der Festplatte, muss erst das komplette Foto geladen werden, um es anschließend auf die richtige Größe zu verkleinern. Damit dies nicht immer und immer wieder gemacht werden muss, werden daher die erstellten Miniaturbilder temporär auf der Festplatte zwischen gespeichert. Mit diesem „Trick“ können die Miniaturbilder von Fotos auf der Festplatte fast genauso schnell erstellt werden, wie es bei Bildern aus der Datenbank der Fall ist.

Insgesamt konnte durch die Veränderungen erreicht werden, das die benötigten Miniaturbilder schneller zur Verfügung stehen. Auch der hohe Arbeitsspeicherverbrauch konnte beseitigt werden. Theoretisch ist es nun möglich, das Bildlisten mit beliebiger Bildanzahl erstellt werden können und jedes mal ungefähr die gleiche Arbeitsspeichergröße benötigt wird.

Komponente zur Anzeige von Schlagwörtern

Ich denke, das es an der Zeit ist, die lange vor mir her geschobene Schlagwortfunktionalität zu implementieren. Da ich mir dort relativ viel vorgenommen habe, kann ich allerdings noch nicht wirklich abschätzen, wie lange mich dieses Thema beschäftigen wird. Wahrscheinlich wird es mir ähnlich gehen, wie bei der Bildbewertungsfunktion, die mit jeder Weiterentwicklung umfangreicher wurde. Angefangen habe ich nun jedenfalls damit, eine Komponente zu erstellen, mit der die Schlagworte eines Bildes dargestellt und verändert werden können.  Da beim BVASystem Fotos nur zusammen mit einer Bildliste geladen werden können, fand ich es praktisch, wenn die Schlagworte in einer Tag-Cloud angezeigt werden. Ein groß geschriebenes Schlagwort bedeutet hierbei, das es in der aktiven Bildliste häufig vorkommt. Klein geschriebene Schlagworte kommen dagegen nur selten in der Liste vor.

Die Optik der Komponente, die im entsprechenden Panel der Bildinformationen betrachtet werden kann, gilt aber keinesfalls als endgültig. Ich denke ich werde sie noch überarbeiten müssen, da zum Beispiel dort auch die Funktion zum Löschen eines Schlagwortes mit integriert werden muss. 

Ausblick auf die nächste Version

Für die nächste Version habe ich mir vorgenommen, die Vollbildansicht zu überarbeiten. Dort stört mich zum Beispiel, das die Position des angezeigten Bildes in der Bildliste nicht ersichtlich ist. Außerdem stört der Hint, welcher einem mitteilen soll, wie der Vollbildmodus wieder verlassen werden kann. Außerdem werde ich an der Schlagwortkomponente weiterarbeiten. Ich hoffe, das ich den Prototypen, den ich in meinem letzten Jahresfazit angesprochen habe, soweit fertig bekomme, das ich ihn hier vorstellen kann.

Nachladen des Originalbildes

Freitag, Dezember 14th, 2012

Kurz vor den Feiertagen ist heute die wohl letzte Version für dieses Jahr vom BVASystem fertig geworden. Die letzten beiden Wochen habe ich hauptsächlich damit verbracht, das in den Darstellungen der Bilder das Originalbild nachgeladen werden kann. Außerdem habe ich Änderungen an den Debugausgaben und den Fehlermeldungen vorgenommen. Zu guter letzt habe ich meine Testanwendung soweit erweitert, das dort nun die erste BVASystem-Funktion getestet werden kann.

Nachladen des Originalbildes

Damit  Bilder schneller angezeigt werden können, arbeitet das BVASystem mit einem kleineren Vorschaubild. Dieses ist von der Größe so gewählt, das es ausreicht um Bilder im „Zoom-Fit“ in guter Qualität darzustellen. Bisher hatte ich es allerdings versäumt, das beim Wechsel des Zoom-Modus das Originalbild nachgeladen wird. Jetzt ist es so umgesetzt, das wenn das Originalbild eine bessere Qualität bringen würde als das vorhandene Vorschaubild, dann wird im Hintergrund das Originalbild geladen. Während des Ladevorgangs bekommt der Anwender weiterhin das Vorschaubild angezeigt und kann in diesem beliebig navigieren. Sobald das Originalbild fertig geladen ist, wird die Ansicht aktualisiert. Als Anwender bemerkt man, das die Qualität plötzlich besser wird. 

Damit sichtbar ist, welches Bild gerade angezeigt wird, ist im oberen Bereich neben dem Bildtitel ein Knopf/Informationsbereich angebracht. Folgende 4 möglichen Bilder können dort angezeigt werden:

Vorschaubild wurde geladen Das Vorschaubild wurde geladen. Mit einem Druck auf das Bild, kann das Originalbild geladen werden.
 Originalbild wird geladen Das Originalbild wird gerade geladen.
 Originalbild wurde geladen Das Originalbild wurde geladen.
 Nachladen des Originalbildes ist nicht möglich Das Nachladen des Originalbildes ist nicht möglich, da die Bildgröße des Originalbildes nicht bekannt ist. Mit einem Druck auf das Bild erscheint ein Hinweisdialog, der beschreibt wie dieser Fehler beseitigt werden kann.

Veränderungen an den Debugausgaben

Für eine spätere Änderung die ich vorhabe, war es notwendig die Funktion zur Ausgabe von Debug-Informationen anzupassen. Hauptsächlich ging es mir dabei um die Tatsache, das wegen der geöffneten Dateien, das BVASystem nur einmal gestartet werden konnte. Im Zuge dessen habe ich aber gleich weitere Änderungen einfließen lassen. 

  • Neu: DBLog-Funktion – Hier werden die an die Datenbank gesendeten SQL-Befehle in eine Datei geschrieben
  • Neu: Die Debugfunktionen können nun im Hauptmenü unter „Hilfe“ jederzeit ein- und ausgeschaltet werden
  • Geändert: Fehlerdialoge sind nun auch aus den Hintergrund-Threads möglich
  • Geändert: Startparameter – Hier können nun die Parameter „-trace“ und „-dblog“ verwendet werden. 
  • Neu: Silentmode – Hier werden die Fehlermeldungen nicht angezeigt, können allerdings mit „GetLastError“ abgefragt werden (Habe ich für die automatische Testung benötigt)

Erweiterung der Testanwendung

Die letzten Tage habe ich dann noch ab der Anwendung zur automatisierten Testung weitergearbeitet. Dort bin ich nun soweit, das eine erste Funktion des BVASystems (das Herstellen der Datenbankverbindung) getestet werden kann. Dabei habe ich mit Absicht einen Fehler provoziert, damit ich sehen kann, ob der umgesetzte Silentmode der Fehlerbehandlung funktioniert. Bisher ist es allerdings noch nicht möglich, der zu testenden Funktion Parameter mit auf den Weg zu geben. Daran werde ich in der nächsten Zeit weiterarbeiten. 

Ausblick

Für die nächste BVASystem Version steht wieder eine größere und für mich wohl schwierige Änderung auf dem Plan. Und zwar werde ich die Bildladefunktion für die Miniaturbilder anpassen. Bisher werden nacheinander immer alle Bilder nacheinander geladen. Mein Ziel ist es, das nur noch die geladen werden, welche auch zur Anzeige benötigt werden. Dadurch möchte ich Zeit und vor allem Speicherplatz einsparen. Außerdem werde ich wohl damit beginnen, mir ein Konzept zu überlegen, wie ich eine Schlagwortfunktionalität in das BVASystem integrieren könnte. Und zu guter letzt seht natürlich die Weiterarbeit an der Testanwendung mit auf dem Plan. 

BVASystem Version 2.1.3

Donnerstag, November 22nd, 2012

Seitdem ich die letzte stabile Softwareversion veröffentlicht habe, sind nun wieder einige Monate vergangen, in denen sehr viel passiert ist. Mittlerweile sind zum Glück alle begonnenen Änderungen abgeschlossen. Bevor ich nun wieder größere Baustellen aufreiße, scheint mir der Moment perfekt, um die nächste stabile Version zu veröffentlichen.

Was ist in den letzten Monaten entstanden?

Die letzten Monate standen ganz im Zeichen der Bildinformationen, so das nun fast alle neuen Tabellen, die bei der letzten Datenbank-Änderung hinzugekommen sind, auch genutzt werden. Die meiste Zeit ging sicherlich in das komplexe System zur Bildbewertung.  Als Anwender hat man im BVASystem die Wahl, ob man zur Bewertung eines Fotos die Unterkriterien nutzt, oder ob man nur eine einzelne globale Bewertung auswählt. Durch Nutzung der Unterkriterien kann eine objektivere Bildbewertung vorgenommen werden, während die globale Bewertung natürlich viel schneller vorgenommen werden kann.

In der Bildinformationsansicht sind eine ganze Reihe neue Informationspanel entstanden. So ist nun zum Beispiel ein Panel vorhanden, in dem der Aufnahmeort eines Fotos angezeigt werden kann. Ebenso ist ein Panel vorhanden, welches die errechneten Bildparameter (mittlere Helligkeit, Belichtungsbewertung, Tonwertumfang) anzeigt. Außerdem ist ein Panel vorhanden, in dem zu jedem Bild ein Bildtitel, der Autor und eine Bemerkung erfasst werden können. 

Alle Stellen, an denen der Bildtitel bzw. die Bildbewertung angezeigt werden, bieten die Möglichkeit zur Schnelleditierung. Dazu muss einfach die jeweilige Position angeklickt werden. In dem dann sichtbaren Popupfenster können die Daten editiert werden.

BVASystem 2.1.3 - Bildinformationen

BVASystem 2.1.3 – Bildinformationen

Zu guter letzt habe ich noch die Vollbildansicht um eine Gestensteuerung erweitert. Zieht man mit gedrückter linker Maustaste nach links, wird das nächste Bild geladen. Wird mit der Maus eine Linie nach rechts gezogen, wird das vorherige Bild geladen. Zeichnet man ein „größer“ Zeichen auf dem Monitor wird zum letzten Bild navigiert und analog dazu beim Zeichnen eines „kleiner“ Zeichen zum ersten Bild. Zusätzlich kann das aktive Foto noch per Mausgeste gedreht werden. Dazu muss bei gedrückter Maustaste nach rechts und dann nach unten gezogen werden. Das Bild wird nun nach rechts gedreht . Nach links gedreht wird, indem man die Maus nach links und anschließend nach unten bewegt.

Was wird in den nächsten Monaten folgen?

In den nächsten Entwicklerversionen werde ich zwei größere Probleme angehen, die seit längerem bestehen. Als erstes werde ich dafür sorgen, dass wenn benötigt das Originalbild nachgeladen wird. Aktuell ist es nämlich so, das das BVASystem fast ausschließlich mit einem sogenannten Vorschaubild arbeitet. Die Bildgröße dieses Bildes ist so gewählt, das es in der angepassten Ansicht schnell geladen und in optimaler Qualität angezeigt werden kann. Verlässt man die angepasste Ansicht, wird das Originalbild leider nicht nachgeladen. Damals, als ich begonnen habe das BVASystem neu zu entwickeln, erschien mir das nachladen nicht als sonderlich wichtig. Aktuell fehlt mir, beim Sortieren meiner Bilder, die wirkliche 100% Anzeige. Ohne die Ansicht kann ich einfach die Bildschärfe nicht richtig beurteilen.

Das zweite Problem liegt in der Art und Weise, wie ich die Miniaturbilder lade. Sie werden nämlich alle nacheinander in den Arbeitsspeicher geladen. Ich habe es nicht genau ausprobiert, aber schätzungsweise bis 2500 Bilder wird dies so funktionieren. Sollen mehr Bilder eingeladen werden, so kann das Programm keinen weiteren Arbeitsspeicher mehr anfordern und die Miniaturbilder bleiben folglich leer. Daher möchte ich das Laden der Miniaturbilder durch einen sogenannten Miniaturbildcache erweitern. In dem Cache sollen immer genau die Bilder vorgeladen werden, die für die Anzeige benötigt werden bzw. die in naher Zukunft wahrscheinlich benötigt werden. Dadurch habe ich nie mehr als einige hundert Bilder geladen, habe kein Arbeitsspeicher-Problem mehr und kann theoretisch beliebig viele Bilder in einer Bildliste darstellen. Mit dem Miniaturbildcache wird außerdem die Wartezeit für den Anwender verkürzt, da sofort die Bilder geladen werden, die für die Anzeige benötigt werden.

Da ich bis zur nächsten stabilen Softwareversion nicht nur Fehler beseitigen will, habe ich mir außerdem vorgenommen,  mit der Implementierung einer Schlagwortfunktionalität zu beginnen. Nachdem in der jetzigen Version 2.1.3 erste textuelle Daten zu einem Foto erfasst werden können, ist es einfach an der Zeit die wichtigen Schlagworte anzugehen. In welcher Form die Umsetzung erfolgen wird, steht allerdings noch nicht ganz fest. Ich bin noch dabei die Vor- und Nachteile der unterschiedlichen Möglichkeiten abzuwägen. 

 

Schnelleditierung von Bildtitel und globaler Bildbewertung

Mittwoch, November 7th, 2012

Relativ spontan habe ich mich am vorigen Wochenende dazu entschieden, das BVASystem um eine Funktion zur schnellen Editierung von Bildtiteln und globaler Bildbewertung zu erweitern. Bisher hatte ich die Veränderung des Bildtitels nur in der Bildinformationsansicht vorgesehen. Nun kann der Titel auch direkt bei den Miniaturbildern verändert werden. Man spart sich also die ständige Wechselei zwischen den Ansichtsmodi.  Um den Bildtitel zu verändern, muss einfach der angezeigte Bildtitel angeklickt werden. Es öffnet sich ein kleines Popupfenster, welches ein Eingabefeld besitzt. Nachdem der Bildtitel verändert wurde, kann der neue Titel durch den dahinterliegenden Knopf gespeichert werden. Durch einen Klick außerhalb des Popupfensters, kann der Editiervorgang jederzeit abgebrochen werden. Analog dazu kann die globale Bildbewertung verändert werden, dazu muss aber natürlich auf die Bildbewertung geklickt werden.

Miniaturbild mit aktiver Schnelleditierung

Miniaturbild mit aktiver Schnelleditierung

Außerdem habe ich in den letzten Tagen ein weiteres Bildinformationspanel fertiggestellt. Die zur automatischen Zuordnung genutzten Bildparameter mittlere Helligkeit, Tonwertumfang und Belichtungsbewertung können nun im Fenster „Bildparameter“ betrachtet werden. Dies soll hauptsächlich die Möglichkeit schaffen, das automatische Zuordnungen nachvollzogen werden können.

Weiterhin ist es möglich, das die drei Felder (Bildtitel, Autor und Beschreibung) im Bildbeschreibungspanel verändert werden können. Die Funktionsweise ist dabei genauso umgesetzt, wie es bereits bei den Bildbewertungen implementiert ist. Sobald eines der Felder geändert wurde, werden auf der linken Seite 2 Knöpfe sichtbar. Einer dient zur Speicherung der Änderungen und mit dem zweiten können die Änderungen rückgängig gemacht werden.

Zusammengefasst kann man sagen, das in den letzten 2 Wochen richtig viel neues entstanden ist und einiges an Komfort  dazugewonnen wurde . Für die nächste Version ist dies allerdings nicht wieder zu erwarten. Ich habe mir nämlich vorgenommen, wieder eine stabile Softwareversion zu erstellen. Hauptsächlich geht es also ans Testen und Fehlerbeseitigen. Am besten ich fange gleich damit an …

Bildinformationspanel: Bildbeschreibung

Montag, Oktober 22nd, 2012

Vor einigen Wochen habe ich angekündigt, das ich aktuell das Ziel verfolge, das das BVASystem die IPTC-Daten unterstüzten kann. Mit dem heutigen Tag ist der erste kleine Mini-Meilenstein zu diesem Ziel erreicht. In dem Bildinformationspanel „Bildbeschreibung“ habe ich einen kleinen Dialog erstellt, in dem Bildtitel, Autor und eine Beschreibung angezeigt werden können.

Bildinformationspanel Bildbeschreibung

Bildinformationspanel Bildbeschreibung

In den nächsten 14 Tagen werde ich mich daran setzen, das diese Daten auch editiert werden können. Außerdem habe ich noch 3 weitere größere Themenkomplexe bearbeitet. Wie immer habe ich auch wieder an meiner Lieblingsbaustelle, den Bildbewertungen, weitergemacht.

Für Bilder und Bildlisten, die von der Datenbank geladen wurden, kann nun ausgewählt werden, welche Bildbewertung angezeigt wird.  Angezeigt werden kann entweder die manuelle Bildbewertung oder die automatische Bildbewertung. Damit diese leicht zu unterscheiden sind, haben die beiden Bewertungsarten nun unterschiedliche Icons erhalten. Die automatische Bewertung wird durch einen Stern mit 4 Ecken symbolisiert, während die manuelle Bewertung durch einen Stern mit 5 Ecken dargestellt wird. Natürlich ist es auch weiterhin möglich, das keine Bildbewertung angezeigt wird.

Automatische/Manuelle Bildbewertung in einer Miniaturbilderansicht

Automatische/Manuelle Bildbewertung in einer Miniaturbilderansicht

Weiterhin habe ich mich mit der Frage beschäftigt, wie die Einstellungen der Bildinformationsansichten dauerhaft gespeichert werden können. Herausgekommen ist dabei ein XML basierter Ansatz, den ich auch bereits zum Teil umgesetzt habe. Beim Beenden des BVASystems wird eine XML-Datei erstellt, die die aktuellen Einstellungen der Bildinformationsansichten enthält. Diese soll beim nächsten Programmstart dann wieder eingelesen werden.

Als letztes habe ich mir überlegt, wie ich das BVASystem effektiv testen kann, bevor ich eine neue Version zum Download anbiete. Dabei ist mir aufgefallen, das ich zumindest die Tests für die Datenschicht automatisieren könnte. Gerade die Aufgaben des Workers schreien förmlich danach automatisiert getestet zu werden. Mit der aktuellen Installationsroutine wird zum ersten mal ein weiteres Programm namens „BVATest“ installiert. Was es mit diesem Programm genau auf sich hat, werde ich in den nächsten Tagen in einem extra Blog erläutern.

Erweiterung des EXIF-Moduls zur Auswertung von GPS-Informationen

Sonntag, Oktober 7th, 2012

In der EXIF Spezifikation sind rund 25 Datenfelder vorhanden, die dazu dienen den Aufnahmeort eines Fotos festzuhalten. So können zum Beispiel geographische Länge und Breite, die Höhe, die Blickrichtung und sogar die Richtung und Geschwindigkeit mit der sich die Kamera während der Aufnahme bewegt hat, im Foto abgespeichert worden sein.

Auch wenn es aktuell noch recht wenige Kameras gibt, die über einen GPS-Empfänger verfügen, habe ich mich trotzdem entschlossen, das das  BVASystem mit diesen Daten umgehen können muß.  Ich halte die Kenntnis über den Aufnahmeort für eine sehr wichtige Information, um ein Foto einem Fotoalbum bzw. sogar einem Schlagwort zuzuordnen. Ich war in der letzten Woche zur Entspannung für ein paar Tage an der Nordsee. Nun könnte ich alle Fotos, die in der Nähe von 54°1′N 8°55′E aufgenommen wurden, dem Album „Friedrichskoog“ zuordnen. Da es mir dort gut gefallen hat und ich wahrscheinlich noch einmal hinfahren werde, ist diese Zuordnung sogar sinnvoller als eine Zuordnung per Aufnahmedatum. Bilder der nächsten Fahrt könnten ohne neue Regel sofort dem Album „Friedrichskoog“ zugeordnet werden. Per Aufnahmedatum ist dies nicht möglich, da ich den neuen Reisetermin ja noch nicht kenne.

Aber soweit ist es noch nicht. In der, ab heute zum Download bereitstehenen Version 2.1.2.51-dev, können vorhandene GPS-Daten aus Fotos extrahiert und auch in der Datenbank abgespeichert werden. Außerdem werden sie in der Bildinformationsansicht auf dem Aufnahmeort-Panel angezeigt.

Außerdem habe ich mal wieder an meiner Lieblingsbaustelle weitergearbeitet. Die oberste Ebene der manuellen Bildbewertung kann nun jederzeit per Strg+1, Strg+2, … und Strg+5 gesetzt werden. Mit Strg+0 kann die vorhandene Bewertung wieder entfernt werden. Diese Shortcuts sind ganz praktisch, wenn man mehrere Bilder schnell bewerten möchte. Zur Visualisierung der Bewertungen habe ich die Einzelbild und Miniaturbildansichten so verändert, das sie dort angezeigt werden. Und auch für die nächste Version habe ich noch eine Idee, wie ich die Bildbewertungsfunktionen verbessern kann. Lasst euch also überraschen.

Neue Miniaturbilderansicht mit Bildbewertungen

Neue Miniaturbilderansicht mit Bildbewertungen

 

Fertigstellung der manuellen Bildbewertung

Montag, September 17th, 2012

Bis auf einige Kleinigkeiten ist heute nun auch die manuelle Bildbewertung fertig implementiert. Leider hat die Umsetzung etwas länger gedauert, als ich eigentlich geplant hatte. Zum einen hatte ich den Aufwand für die Nutzerinteraktion unterschätzt und zum zweiten setzte mich eine Krankheit für knapp eine Woche außer Gefecht. Nun ist aber endlich die 50. Version der Bildverwaltung fertig und steht zum Download bereit.

Wie funktioniert die manuelle Bildbewertung?

Die manuelle Bildbewertung setzt sich aus einer Reihe von  Unterbewertungen zusammen, die wiederum Unterbewertungen enthalten können. Als Anwender hat man nun die Wahl, ob man einfach und schnell nur die gängigen 1 bis 5 Sterne vergeben möchte, oder ob jede einzelne Unterbewertung separat gesetzt werden soll. Wird eine Bewertung, die weitere Unterbewertungen enthält, festgelegt, so werden gleichzeitig die Unterbewertungen auf den gleichen Wert gesetzt. Andersherum werden übergeordnete Bewertungen durch eine Mittelwertbildung berechnet.

Manuelle Bildbewertung im ungespeicherten Zustand

Manuelle Bildbewertung im ungespeicherten Zustand

Bereits wenn man die Maus über die Sterne bewegt, wird visuell dargestellt, wie sich das Setzten der Bewertung auswirken wird. Das eigentliche Setzen der Bewertung geschieht, indem auf den gewünschten Stern geklickt wird. Alternativ steht ein Popupmenü zur Verfügung, in dem auch bereits gesetzte Bewertungen wieder entfernt werden können. Sobald mindestens eine Bewertung geändert wurde, werden auf der linken Seite 2 Knöpfe sichtbar. Einer dient zur Speicherung der Änderungen und mit dem zweiten können die Änderungen verworfen werden. Die Speicherung der Bildbewertungen geschieht, wie alle anderen Datenbankänderungen auch, mit Hilfe des Workers.

Ausblick

Die Bildbewertung wird mich auch in der nächsten Version des BVASystems noch einmal beschäftigen, denn ich möchte die fehlenden Kleinigkeiten nicht aus den Augen verlieren. Zum einen möchte ich den Anwender durch eine Frage darauf aufmerksam machen, das wenn er innerhalb der Bildliste navigieren möchte, nicht gespeicherte Bewertungen verloren gehen. Die gleiche Information möchte ich anzeigen, wenn die Bildinformationsansicht verlassen wird. Außerdem erachte ich es für sinnvoll, das die globale manuelle Bewertung  per Tastaturkürzel zu erreichen ist. Wahrscheinlich werde ich Strg+1 für 1 Stern, Strg+2 für 2 Sterne, usw. dafür auswählen. Die Tastaturkürzel sollen dabei global, das heißt in jedem Anzeigemodi funktionieren.

Weiterhin in Planung ist eine Erweiterung des EXIF-Moduls. Vorhandene GPS-Informationen sollen ausgelesen und in dem entsprechenden Bildinformationspanel angezeigt werden.

Fertigstellung der automatischen Bildbewertung

Montag, August 27th, 2012

Der erste Teil der Bildbewertungsfunktionalität ist mit der Version 2.1.2.49-dev nun fertig implementiert. Eigentlich hatte ich geplant, zuerst die manuelle Bildbewertung umzusetzen, aber mich dann doch entschieden, die automatische vorzuziehen. Da bei der Komponente zur Anzeige der Bewertung noch relativ viel fehlte, erschien es mir leichter, zuerst die automatische Bewertung zu programmieren. Jetzt ist zumindest die Anzeige der Bewertung und die dazugehörige Anbindung an die Datenschicht vorhanden, so das für die manuelle Bewertung nur noch die Nutzerinteraktion mit der Komponente fehlt.

Wie funktioniert die automatische Bewertung?

Die automatische Bewertung basiert auf der Anzahl der Bildbetrachtungen. Das Bild, welches am häufigsten angesehen wurde, erhält 5 Sterne. Fotos die noch nie angesehen wurden logischerweise 0 Sterne. Für alle anderen Fotos wird die Bewertung aus dem Verhältnis der Betrachtungsanzahl zur maximalen Betrachtungsanzahl berechnent.

Automatische Bildbewertung von 3,5 Sternen bei 27 Bildbetrachtungen

Automatische Bildbewertung von 3,5 Sternen bei 27 Bildbetrachtungen

Schwierig ist jedoch die Antwort auf die Frage, wann ein Bild betrachtet wurde. Ich habe mich dazu entschieden, die Betrachtungsanzahl zu erhöhen, wenn zwischen den Ladevorgängen von 2 Bildern mindestens 1,5 sec vergehen. Dabei ist es unerheblich, in welchem Anzeigemodus man sich befindet. Es wird immer gezählt, sobald ein neues Einzelbild eingeladen wird.

Ausblick

Die nächste Version wird für mich eine ganz spezielle werden, aber nicht weil besonders spannende Aufgaben auf mich warten. Es steht hauptsächlich die Umsetzung der manuellen Bewertung an. Das Besondere an der nächsten Version wird sein, das es die fünfzigste Version sein wird, die ich hier veröffentlichen werden. Wenn ich mir das Programm so ansehe, bin ich schon stolz darauf, was ich in meiner Freizeit so erschaffen habe. Toll finde ich auch, das sich das Konzept mit dem Blog hier bewährt hat und die Besucher- bzw. Downloadzahlen stetig wachsen.

Neue Datenbankstruktur (Version 2)

Montag, August 13th, 2012

Prinzipiell versuche ich ja, so lange wie möglich mit einer bestehenden Datenbankstruktur zu arbeiten. Aber irgendwann kommt einfach der Punkt, an dem es nicht mehr ohne geht. Ich würde fast sagen, das mich die alte Datenbankstruktur eine Zeit lang gelähmt hat, da die Möglichkeit zur Aktualisierung per Administrationstool fehlte.  Jetzt wo das Administrationstool die Funktion besitzt, kommt eine Art kleiner Befreiungsschlag, denn ich habe gleich für fünf neue Funktionen die Datenbankänderungen vorgenommen.

Speicherung der Bildbewertung

Die Bildbewertung habe ich in den letzten beiden Artikeln ja bereits ausführlich vorgestellt. Mit der neuen Datenbankstruktur habe ich nun alle Voraussetzungen geschaffen, um die Bildbewertungen speichern zu können.

Speicherung der berechneten Bildparameter

Um die Metadatenzuordnungen zu prüfen, ist es sinnvoll, das die genutzten Bildparameter für jedes Bild in der Programmoberfläche angezeigt werden. Daher habe ich eine Tabelle in der Datenbankstruktur vorgesehen, die die Belichtungsbewertung, den Tonwertumfang und die mittlere Helligkeit speichern kann.

Speicherung des Aufnahmeortes eines Fotos

Vor einigen Monaten habe ich mir eine neue Digitalkamera gekauft, die in der Lage ist, per GPS den Aufnahmeort mit in der Bilddatei abzulegen. Ich denke, das der Aufnahmeort ein tolles Metadatenelement für die automatischen Zuordnungen ist. Beispielsweise könnten so alle Fotos, die im Berliner Zoo aufgenommen wurden, dem Album „Berliner Zoo“ zugeordnet werden. Gleichzeitig wäre es möglich alle entsprechenden Fotos automatisch mit dem Schlagwort „Berliner Zoo“ zu taggen. Als Grundvorraussetzung hierfür habe ich die Datenbank nun so erweitert, das alle GPS-EXIF-Tags gespeichert werden können.

Speicherung der gängigen IPTC-Datenfelder

Weiterhin fehlte im BVASystem bisher die Möglichkeit, einige Bilddaten zu erfassen, die normalerweise im IPTC-Header gespeichert werden können. Zu den Feldern zählen Beispielsweise: Fotograf, Bildtitel, Bildbeschreibung, Copyright und zu guter letzt die Schlagworte. Damit sich auch in diesem Bereich etwas ändern kann, habe ich die entsprechenden Datenfelder angelegt.

Speicherung der Originalbildgröße

Bisher ist es so, das das BVASystem fast ausschließlich mit dem erstellten Vorschaubild arbeitet. Für die normale Anzeige ist dieses, in der Standardeinstellung 800 Bildpunkte hohe Bild, völlig ausreichend. Verlässt man die angepasste Darstellung, fällt aber schnell auf, das die Originalbildgröße nicht zur Verfügung steht. Längerfristig ist geplant, das das Originalbild beim Zoomen nachgeladen wird. Als ersten Schritt dorthin möchte ich erst einmal die Größe der 100% Ansicht korrigieren. Dazu benötige ich natürlich die Originalbildgröße, die ich erfahren möchte, ohne das ich das Originalbild bereits laden muss. 

Durchführung der Datenbankaktualisierung

Die Durchführung der Datenbankaktualisierung wird mit dem BVASystem Administrationstool durchgeführt. Alle dafür notwendigen Datenbankscripte werden bei der Programminstallation mit auf dem Rechner kopiert. Der Ablauf der Aktualisierung ist genauso, kann aus der Installationsanleitung entnommen werden. Ich empfehle, bevor das Update durchgeführt wird, die Datenbank mit dem entsprechenden Tool des Datenbanksystems zu sichern.

Ich hoffe, das ich alle Datenbankänderungen inhaltlich korrekt vorgenommen habe, so das bitte möglichst viel Zeit vergeht, bis es heißt „Neue Datenbankstruktur (Version 3)“