Posts Tagged ‘Bildinformationen’

Datenbankstrukturupdate Schlagworte

Dienstag, Mai 14th, 2013

Nach einer etwas längern Pause steht mit dem heutigen Versionsupdate (Version 2.1.4.62-dev) auch ein Datenbankstrukturupdate an. Die Aktualisierung der Datenbankstruktur erfolgt, wie bereits beim letzten Update, mit dem Administrationstool.  Details zur Aktualisierung der Datenbankstruktur könnt ihr in der Anleitung nachschlagen. 

Inhaltlich geht es bei dem Datenbankstrukturupdate ausschließlich um die Schlagworte. Eigentlich hatte ich ja bereits Tabellen für die Schlagworte angelegt. Aber als ich mir überlegt habe, wie die Schlagwortfunktionen im BVASystem aussehen sollen, wurde schnell klar, das die bestehenden Tabellen bei weitem nicht ausreichen. Folgende Funktionen/Eigenschaften sind künftig bei den Schlagworten geplant:

  • Schlagwort-Wolke

Wenn man eine beliebige Bildliste, wie zum Beispiel ein Fotoalbum, im BVASystem betrachtet, so sollen alle dort genutzten Schlagworte in einer Schlagwort-Wolke angezeigt werden. Häufig genutzte Schlagworte sollen hierbei größer dargestellt werden, als selten genutzte Schlagworte. Damit verbunden soll ein gewisser Komfort beim Verschlagworten von Fotos entstehen, denn in der Bildliste bereits genutzte Schlagworte müssen nicht erneut per Tastatur eingegeben werden. Ein einfacher Klick reicht aus, um sie bei weiteren Fotos zu aktivieren.

  • Hierarchische Kategorien

Im alten BVASystem war es so, das Schlagworte hierarchisch angelegt werden konnten. Wurde dort zum Beispiel das Schlagwort „Ente“ als Unterschlagwort von dem Schlagwort „Vogel“ angelegt, so konnte bei der Auswahl des Schlagwortes „Ente“ das Schlagwort „Vogel“ automatisch mit ausgewählt werden. Dieses System möchte ich jetzt nicht wieder umsetzen, da es mir persönlich schwer gefallen ist, die Schlagworte in einer Baumstruktur anzuordnen. Für die künftige Implementation ist geplant, das alle Schlagwörter gleichrangig ohne großes Ordnungssystem angelegt werden können. Dies entspricht auch mehr der gängigen Vorgehensweise, bei der Schlagworte als lose Wortaufzählungen festgelegt werden.

Allerdings möchte ich die Möglichkeit bieten, das eine Gruppe von Schlagworten einer Kategorie zugeordnet werden kann. Beim Verschlagworten von Fotos, die bei einem Strandurlaub aufgenommen wurden, werden sicherlich ganz andere Schlagworte benötigt als bei Fotos, die in den Bergen aufgenommen wurden. Sofern man die Schlagwortkategorien konsequent nutzt, ist es möglich eine Schlagwortliste zu erstellen, die nur die  Schlagworte enthält, die benötigt werden um Fotos vom Strandurlaub zu verschlagworten. Mein Ziel ist, das man sich durch die Kategorien innerhalb der Schlagworte schneller zurechtfinden kann und dadurch die Verschlagwortung schneller fertigstellen kann.

  • Vorschläge für weitere Schlagworte

Bei der Eingabe von neuen Schlagworten, sollen dem Anwender bereits genutzte Schlagworte, die mit der identischen Zeichenfolge beginnen, angezeigt werden. Dadurch möchte ich sicherstellen, das nicht verschiedene Versionen eines Schlagwortes, wie zum Beispiel Schiff/Schiffe, abgespeichert werden. 

  • Automatische Zuordnungen für Schlagworte

Ähnlich wie ich es bereits bei den Fotoalben umgesetzt habe, soll es auch für die Schlagworte eine Möglichkeit zur automatischen Zuordnung geben. Hierbei denke ich vor allem an Schlagworte, die sich geografisch lokalisieren lassen. Denkbar wäre es aber zum Beispiel auch, das man Personen per Gesichtserkennung auf Fotos identifiziert. Ich werde hier versuchen, möglichst viele Ansatzpunkte umzusetzen, damit ein möglichst flexibles System entsteht.

  • Austauschbarkeit von Schlagworten

Prinzipiell möchte ich die Möglichkeit schaffen, das die Inhalte der Schlagworttabellen ausgetauscht werden können. Gerade wenn für Schlagworte Möglichkeiten zur automatische Zuordnungen definiert wurden, erscheint es mir sinnvoll, wenn sie zwischen verschiedenen Anwendern ausgetauscht werden können. Als Austauschformat soll eine XML-Struktur genutzt werden. Eventuell wird es sogar eine öffentliche Plattform geben, die zum Austausch der Schlagwort-Definitionen dienen wird.

Programmänderungen der Version 2.1.3.62-dev

Auch wenn ich in den letzten Wochen die meiste Zeit mit dem Datenbankstrukturupdate verbracht habe, habe ich es trotzdem geschafft, eine Funktion zu implementieren, die mir schon lange auf dem Herzen liegt. Es ist  nun möglich, die Größe von einzelnen Bildinformationspanels zu verändern. Möglich ist dies durch eine Drag&Drop-Aktion, die in den Zwischenräumen der einzelnen Panels gestartet werden kann. Während man die Maustaste gedrückt hält, wird die neue Position des Zwischenraums durch eine graue Linie gekennzeichnet. Die Größenänderung wird dann beim loslassen der Maustaste durchgeführt. Die Veränderung der Größe wird so durchgeführt, das keinerlei Lücken in der Darstellung entstehen. Es ist also durchaus möglich, das mit einer Drag&Drop-Aktion mehrere Panel in ihrer Größe verändert werden.

Angepasste Bildinformationsansicht

Angepasste Bildinformationsansicht

Ausblick

Ab jetzt sollen die Programmupdates wieder im gewohnten Rhythmus stattfinden. Für die nächsten drei Wochen habe ich mir vorgenommen, die ersten Schritte zur Implementation der Schlagwortfunktionalitäten durchzuführen. Außerdem ist geplant, das die Bildkomponente, die überall zur Anzeige der Fotos genutzt wird, um Overlay-Fenster erweitert wird. In einem dieser Fenster soll später zum Beispiel ein Übersichtbild angezeigt werden, damit man auch bei herangezoomten Bildern weiß, in welchem Bildbereich man sich befindet. Insgesamt gesehen gibt es also sehr viel zu tun, so dass ich mich am besten gleich an die Arbeit mache.

BVASystem Version 2.1.4

Donnerstag, April 4th, 2013

Die Entwicklung der Version 2.1.4 stand ganz im Zeichen der Verbesserungen. So wurden in den letzten Monaten viele optische, aber auch einige technische Verbesserungen umgesetzt, wodurch das Programm viel Bedienkomfort dazu gewinnt. Gerade die Veränderung in der Funktion zum Laden von Thumbnails war mir sehr wichtig, da es dadurch erst möglich geworden ist, tausende Bilder auf einmal in eine Bildliste zu laden.

Änderungen zur Vorgängerversion

Folgende Änderungen wurden im Detail umgesetzt:

Ladefunktion für Miniaturbilder

Bisher wurden immer alle Thumbnails einer Bildliste nacheinander geladen, was dazu führte, das das BVASystem bei einer großen Bildliste sehr viel Arbeitsspeicher benötigte bzw. sogar abstürzte, wenn kein weiterer Speicher angefordert werden konnte. Neu ist nun, das nur noch die Fotos eingelesen werden, die für die Anzeige benötigt werden. Navigiert man innerhalb der Bildliste, werden die nicht mehr benötigten Bilder wieder freigegeben. Ergebnis ist, das nun deutlich weniger Arbeitsspeicher benötigt wird und das die Fotos, die man sehen möchte, schneller eingelesen sind.

Nachladen des Originalbildes

Das BVASystem ist darauf ausgelegt, das Fotos möglichst schnell eingelesen werden können. Daher arbeitet das System intern mit einem Vorschaubild, welches an die Anzeigegröße angepasst ist. Problematisch wurde es bisher allerdings, wenn man sich das Foto in der 100% Zoomstufe ansehen wollte. Dann wurde nur das Vorschaubild auf 100% skaliert, das eigentliche Bild in Originalgröße konnte man quasi nicht erreichen. Nun ist es so, das das Bild bei Bedarf vom System selbstständig in voller Größe nachgeladen wird. Ob man gerade das Vorschaubild oder das Originalbild sieht, wird über ein kleines Icon neben dem Bildtitel dargestellt. 

Hauptdialog der Version 2.1.4.61

Hauptdialog der Version 2.1.4.61

Animationpanel

Die größte optische Änderung ergibt sich durch die Einführung des Animationpanels. Es ist nun möglich, die beiden Baumansichten auszublenden. Dadurch ergibt sich deutlich mehr Raum, der für die Darstellung der Bilder genutzt werden kann. Möchte man den Ordner bzw. das Fotoalbum wechseln, so genügt es die Maus auf die verbliebenen Überschriftenbereiche zu bewegen. Anschließend wird der Baum mit einer kleinen Animation sichtbar gemacht.

Erweiterungen der Bildinformationspanel

In der Bildinformationsansicht hat sich auch einiges geändert. So ist es nun endlich möglich, einzelne Panel ein und auch wieder auszublenden. Beim erneuten Einblenden eines Panels wird dieses an der gleichen Position angezeigt, die es vor dem Ausblenden hatte. Außerdem ist es nun möglich, einzelne Panel untereinander zu tauschen und zu guter letzt ist es möglich, sich weitere eigene Ansichten zu definieren.

Neugestaltung der Vollbildansicht

Als letzten Punkt möchte ich auf die überarbeitete Vollbildansicht hinweisen. Diese wurde optisch an den Rest des Programmes angepasst und um eine Anzeige der Position innerhalb der Bildliste ergänzt.

Ausblick

Es wurde bereits begonnen, ein Bildinformationspanel zu schaffen, mit dem ein Foto mit Schlagworten versehen werden kann. Aktuell ist es in einem prototypischen Zustand, der grob zeigt wie ich mir die Verschlagwortung eines Bildes vorstelle. Es fehlt noch komplett die Bindung an die Datenschicht, so das aktuell keine Schlagworte eingegeben und gespeichert werden können. Dies möchte ich bis zur Version 2.1.5 abändern. Außerdem habe ich vor, noch einige kleinere Features zu implementieren, die mir beim täglichen Einsatz der Software fehlen. So benötige ich zum Beispiel für meine Homepage Bilder in einer Größe von 1500×1000 Pixel. Aktuell übergebe ich daher jedes Foto vom BVASystem aus an mein Bildbearbeitungsprogramm. Gerade wenn ich mehrere Bilder für die Homepage brauche ist dies recht mühsam. Daher möchte ich gerne eine Bildexportfunktion implementieren, die Fotos in der gewünschten Größe exportieren kann.

Da gleich für die nächste Version eine Datenbankänderung für die Schlagworte ansteht, wird es diesmal wohl etwas länger dauern, bis ich die nächste Entwickler-Version der Bilddatenbank fertigstellen kann. Änderungen an der Datenbankstruktur will ich möglichst selten machen, daher muss ich mir nun genau überlegen, welche Änderungen ich in den nächsten Monaten benötigen werde. Ich will ja nicht, das ihr bei jeder Entwicklerversion die Datenbank anpassen müsst. Daher bitte ich diesmal um etwas Geduld.

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 … 

Keep it simple, stupid

Donnerstag, Februar 14th, 2013

„Keep it simple, stupid“ ist ein Satz, an den ich in den letzten Tagen häufiger denken musste. Er beschreibt ein Designkonzept, bei dem nach der einfachsten und am leichtesten zu verstehenden Lösung gestrebt wird. Auf den Weg dorthin verzettelt man sich aber meistens anständig, indem man Workaround für Workaround programmiert um das Problem vollständig zu lösen. Spätestens wenn man seinen eigenen Quelltext nach recht kurzer Zeit nicht mehr versteht, sollte man über einen alternativen Lösungsweg nachdenken.

Vor einigen Wochen ärgerte ich mich damit herum, das ich es nicht geschafft habe, die Nachbarschaftsbeziehungen der einzelnen Bildinformationspanels korrekt zu halten, wenn der Anwender einzelne Panel ausblendet. Immer wieder gab es einen Sonderfall, bei dem die Nachbarschaftsbeziehungen zerstört wurden. Normalerweise ist es nicht meine Art, aber nach einigen Tagen gab ich entnervt auf und beschloss einen Neuanfang. Ziel ist/war es einen Weg zu finden, der einfach ist, immer funktioniert und wenn möglich frei von Sonderfällen ist. „Keep it simple, stupid“ eben.

Bisher hatte ich versucht, die Nachbarschaftsbeziehungen mit jeder Aktualisierung zu prüfen und gegebenenfalls zu korrigieren. Wenn zwischen dem Panel „A“ und „B“, ein Panel „C“ eingeblendet wurde, so musste „B“ aus den Nachbarschaftsbeziehungen von „A“ entfernt und „C“ hinzugefügt werden. Bei „B“ musste der Nachbar „A“ entfernt und der Nachbar „C“ hinzugefügt werden. Bei „C“ ist es am einfachsten, denn da musste nur „A“und „B“ als Nachbar hinzugefügt werden. Hört sich einfach an, aber leider ist dies auch der einfachste Fall. Zum Beispiel habe ich die Nachbarn, die ober- und unterhalb von „A“ und „B“ liegen könnten in dem Beispiel gar nicht berücksichtigt. 

Debugdialog der Bildinformationspanel

Debugdialog der Bildinformationspanel

In der neuen Version des BVASystems bin ich meinem Ziel, eine einfache Lösung zu implementieren, nun einen großen Schritt nähergekommen. Den neuen Ansatz habe ich zum Testen in der Debug-Ansicht der Bildinformationspanels integriert. Ihr könnt diese Debug-Ansicht öffnen, in dem ihr auf das BVASystem-Icon in der Überschrift eines Bildinformationpanels klickt. Dort können  alle Nachbarschaftsbeziehungen neu bestimmt werden. Insgesamt gesehen ist der Aufwand natürlich größer, aber da im BVASystem aktuell nur 8 Panel benutzt werden können, hält sich der zeitliche Verlust in Grenzen. Auf meinem Entwicklungsrechner dauerte eine komplette Neubestimmung nur 0,03 ms. In den nächsten Tagen habe ich nun vor, die bestehende Lösung zu ersetzen, damit ich überprüfen kann, ob die neue Lösung wirklich immer funktioniert.

Ü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.

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.

Ein besonderer Tag

Mittwoch, Juli 11th, 2012

Heute ist für mich in zweierlei Hinsicht ein ganz besonderer Tag. Zum einen hab ich heute die Ehre, die dritte stabile Softwareversion der Bilddatenbank vorzustellen und zum zweiten habe ich ab heute das BVASystem auf einem zweiten PC im Einsatz. Bisher habe ich ausschließlich auf meinem Entwicklungsrechner mit einer Testdatenbank am und mit dem BVASystem gearbeitet. Dies war natürlich alles andere als optimal, da immer wieder relativ sinnlose Testdaten angelegt wurden. Von dem neuen Rechner, der extra nur für meine eigene Fotosammlung angeschafft wurde, verspreche ich mir, das die Sammlung ohne Störungen geordnet werden kann.  Außerdem hoffe ich, das fehlende Funktionen oder Fehler durch die intensivere Benutzung des Programmes früher auffallen. Nun aber zum für euch wichtigen Teil: Version 2.1.2

BVASystem 2.1.2 - Miniaturbilder

BVASystem 2.1.2 – Miniaturbilder

Welche Neuerungen gibt es am Programm?

Die meiste Zeit hab ich in den letzten Monaten an den Metadatenelementen gearbeitet. Aus dem kleinen Entscheidungsbäumchen ist nun mittlerweile ein richtiger großer Baum geworden. Folgende Metadatenelemente können  jetzt für die automatischen Zuordnungen genutzt werden:

  • Aufnahmedatum
  • Belichtungszeit
  • Blende
  • Brennweite
  • ISO-Empfindlichkeit
  • Verwendete Kamera
  • Besitzer des Bildes
  • Belichtungsbewertung
  • Mittlere Helligkeit
  • Tonwertumfang

Gerade noch mit in die neue Version haben es einige Funktionen geschafft, die ich persönlich bei der täglichen Arbeit sehr vermisst habe. Das BVASystem kann nun genutzt werden, um ausgewählte Fotos in ein anderes Verzeichnis zu kopieren bzw. zu verschieben. Außerdem können Fotos mit einem beliebigen externen Bildverarbeitungsprogramm bearbeitet werden. Auch für Fotos, die sich in der Datenbank befinden, ist dies möglich, da die ausgewählten Bilder in ein temporäres Verzeichnis exportiert werden. Beim Beenden des Programms, werden die temporären Dateien  dann wieder gelöscht.

Leider muss die Konfiguration des externen Bildverarbeitungsprogrammes noch manuell vorgenommen werden. Die „bvasystem.ini“ muss beispielsweise für eine Verknüpfung mit PaintShop Pro 9 um folgende 3 Zeilen erweitert werden:

[IMAGEEDIT]
PROGRAM=C:\Program Files (x86)\Jasc Software Inc\Paint Shop Pro 9\Paint Shop Pro 9.exe
PARAMS=::FILE::

Außerdem neu ist die Bildinformationsansicht. Dort können alle erfassten Bildinformationen eines Fotos betrachtet werden. Innerhalb der aktiven Bildliste kann ähnlich wie in der Einzelbild- oder Filmstreifenansicht navigiert werden. Der jetzige Entwicklungsstand der Bildinformationsansicht ist nicht als endgültig anzusehen. In Zukunft habe ich vor, dem Anwender dort viel mehr Freiräume zu schaffen.

Welche Änderungen stehen als nächstes an?

Aktuell ist es für mich schwierig zu entscheiden, an welcher Stelle ich das Programm als nächstes weiterentwickeln werde. Es schwirren einfach zu viele Ideen in meinem Kopf herum. Fest steht, das ich möglichst bald eine Erweiterung der Datenbankstruktur vornehmen muss. Dafür muss als erstes das Administrationstool erweitert werden, damit sie mit dem Tool durchgeführt werden können.

Die anstehende Datenbankänderung werde ich möglichst umfangreich gestalten, so das eine Reihe von neuen Funktionen umgesetzt werden können, ohne das alle paar Wochen die Datenbankstruktur geändert werden muss.  Als erstes werde ich mich dann sicher um die manuelle und automatische Bewertung von Fotos kümmern. Ziel ist es, ein zusätzliches Sortierkriterium zu schaffen, so das sich die besten Bilder immer am Anfang einer Bildliste befinden. Eine weitere Änderung wird sein, das die wichtigsten IPTC-Datenfelder in der Datenbank gespeichert werden können. Weiterhin ist geplant, das die errechneten Datenfelder (Tonwertumfang und Belichtungsbewertung) ebenfalls in der Datenbank gespeichert werden, damit sie nachträglich einsehbar sind. Zur Anzeige der neuen Datenfelder soll die Bildinformationsansicht weiter ausgebaut werden.

Metadatenelemente: Blende und Belichtungszeit

Montag, Juni 11th, 2012

Mit nur einem Tag Verzug habe ich es heute geschafft, die vor dem Urlaub gesteckten Ziele zu erreichen. In der neuen Version 2.1.1.44-dev der Bilddatenbank BVASystem habe ich diesmal sogar 2 neue Metadatenelemente hinzugefügt. Allerdings muss ich auch gestehen, das es sich um relativ einfache Metadatenelemente handelt. Sowohl die Blende, als auch die Belichtungszeit werden aus dem EXIF-Header der Bilddatei bezogen. Dadurch entfallen hier diesmal auch die großen Erklärungen. Es wird einfach ein Bereich definiert, in dem die Blende bzw. die Belichtungszeit liegen muss, um eine Zuordnung zu erreichen.

Metadatenelemente Blende und Belichtungszeit

Metadatenelemente Blende und Belichtungszeit

Die einzige Schwierigkeit daran lag in der Oberflächengestaltung, denn ich wollte nicht, das ihr beispielsweise 0,000125
eingeben müsstet, wenn ihr eine Belichtungszeit von 1/8000 s gewählt haben wollt. Aber auch eine fest vorgegebene Liste wollte ich nicht implementieren, da fehlende Werte nicht ergänzt werden könnten. Daher habe ich eine weitere Konfigurationsdatei geschaffen, welche alle Listenwerte enthält. Diese Datei wird bei jedem Programmstart eingelesen und bei den Metadatenelementen benutzt. Sollte ich einige Werte nicht bedacht haben, können sie einfach nachgetragen werden. Der Syntax der neuen Konfigurationsdatei „listen.ini“ sollte, so denke ich, leicht verständlich sein.

Welche weiteren Änderungen wurden am Programm umgesetzt?

Außerdem habe ich auch diesmal wieder an der Bildinformationsansicht weitergearbeitet. Neu hinzugekommen ist die Möglichkeit, mehrere Ansichten zu speichern und zwischen ihnen zu wechseln. Außerdem werden die Ansichten in der Größe angepasst, sobald sich die Größe des Programmfensters ändert. Da ihr noch keine eigenen Ansichten anlegen könnt, habe ich 2 Demonstrationsansichten geschaffen, mit denen der Ansichtswechsel getestet werden kann.

Wie geht es weiter?

Die nächste Version der Bildverwaltung wird die letzte sein, in der ich neue Metadatenelemente hinzufüge. Neben der bereits implementierten Blende und Belichtungszeit fehlen nämlich noch die Brennweite und die ISO-Empfindlichkeit, um die wichtigsten EXIF Parameter abzudecken. Außerdem habe ich vor, einige kleinere Korrekturen an der Bildinformationsansicht durchzuführen.

Langfristig hat sich durch meinen Urlaub einiges in der Planung geändert. Meinen aktuellen Plan, dessen Umsetzung nach heutiger Schätzung bis ungefähr Mitte/ Ende August dauern wird, habe ich im Bugtracker eingepflegt. Er beinhaltet hauptsächlich eine Unterstützung bei der ersten Grob-Sortierung, die vor dem Einsatz einer Bildverwaltung durchgeführt werden sollte. In den nächsten Tagen werde ich mindestens einen weiteren Blog verfassen, der meine Ziele genauer erläutern wird.

Metadatenelement: Belichtungsbewertung

Dienstag, Mai 15th, 2012

So langsam mag es etwas langweilig klingen, aber das BVASystem hat heute wieder ein weiteres Metadatenelement erhalten. Für mich ist es allerdings gerade eine spannende Zeit: Mit jedem neuen Metadatenelement wächst die Anzahl der Kombinationen, mit der die einzelnen Elemente verknüpft werden können. Das spannende daran ist, das es aktuell noch nicht absehbar ist, welche der Kombinationen genutzt werden kann, um thematisch zusammengehörige Fotos vom Rest der Bilder zu trennen.

Aber auch diesmal muss ich das Metadatenelement ein wenig erklären, da es wieder ein Element ist, welches vom Programm errechnet wird.

Wie definiert sich die Belichtungsbewertung?

Wie auch der Tonwertumfang basiert die Belichtungsbewertung auf dem Histogramm des Fotos. Im letzen Blog habe ich versucht zu erklären, das ein perfektes Bild alle möglichen Tonwerte nutzt. Es dürfen allerdings keine Farbwerte außerhalb des möglichen Tonwertumfangs liegen. Alle Bildpunkte, die dunkler als der kleinstmögliche Tonwert sind, werden von der Kamera ebenfalls auf den kleinstmöglichen Tonwert gesetzt. Analog gilt das gleiche für Bildbereiche die heller sind, als der größtmögliche Tonwert. Im Bild äußert sich das dadurch, das größere Flächen entstehen, die komplett schwarz bzw. komplett weiß sind. Im Histogramm erkennt man ebenfalls eine Häufung beim kleinstmöglichen bzw. größtmöglichen Tonwert. Für die Belichtungsbewertung zählt das BVASystem nun die weißen bzw. die schwarzen Bildpunkte und setzt sie im Verhältnis zur Gesamtbildgröße. Je mehr Prozent der Bildfläche komplett weiß bzw. schwarz sind, desto größer ist der fehlbelichtete Bildbereich.

Wozu kann sie genutzt werden?

In erster Linie ist die Belichtungsbewertung dazu gedacht, damit fehlbelichtete Bilder erst garnicht in das jeweilige Fotoalbum eingefügt werden. Aber auch der umgekehrte Fall, das nur fehlbelichtete Bilder einem Album zugeordnet werden, erscheint mir sinnvoll, da man beispielsweise so gezielt alle fehlbelichteten Bilder betrachten kann.  So kann man schnell entscheiden, ob das Bild mit Photoshop noch zu „retten“ ist oder ob es besser gelöscht werden sollte. Natürlich kann man die Belichtungsbewertung auch nutzen, um Fotos die bewusst unter- oder überbelichtete Bildbereiche (z.B Sternenhimmel) besitzen von anderen Fotos zu trennen.

Um möglichst viele verschiedene Definitions-Möglichkeiten zu bieten, können auch nur unterbelichtete oder nur überbelichtete Bildbereiche ausgewertet werden. Gerade im Fall des Sternenhimmels wird einem wahrscheinlich nur der unterbelichtete Bildbereich interessieren. Standardmäßig sind bei der Definition des Metadatenelements Belichtungsbewertung unter- und überbelichtete Bildbereich ausgewählt.

Metadatenelement Belichtungsbewertung

Metadatenelement Belichtungsbewertung

Welche weiteren Änderungen wurden am Programm umgesetzt?

In der Bildinformationen-Ansicht hat sich auch einiges getan. Auffällig sollte sein, das sich nun nicht mehr 2 sondern 3 kleine Fensterchen auf der Ansicht befinden. Außerdem sollte auffallen, das jedes dieser 3 Fenster auch eine Funktion hat. Das erste der Fenster dient zur Navigation innerhalb der aktiven Bildliste. Das Foto-Fenster zeigt logischerweise das aktuell aktive Bild an und das Kamera-Fenster zeigt aktuell die EXIF-Daten des Bildes an, wie es auf dem Bildinformationspopup bekannt sein sollte.

Des weiteren habe ich  daran gearbeitet, das alle Funktionen zur Bildveränderung in der ImgFkt.dll ausgelagert sind. Neu ist diesmal, das die Funktion zur Umwandlung eines Bildes in ein Graustufenbild ausgelagert wurde. Scheinbar mag dies zu keiner Änderung für den Anwender führen, aber intern erhalte ich dadurch eine viel klarere Struktur. Und vielleicht ergibt sich auch einmal die Gelegenheit die Funktionsbibliotek für ein anderes Projekt zu verwenden.

Wie geht es weiter?

Weiterarbeiten werde ich nun an 2 weiteren Metadatenelementen, deren Umsetzung sich einfacher gestalten dürfte. Es geht dabei um die Blende und die Belichtungszeit, die von der Kamera in der Bilddatei abgelegt wurde. Mein Ziel ist es dabei, zu ermöglichen, Fotos, bei deren Aufnahme ähnliche Lichtbedingungen herschten, zu filtern.

Die Schwierigkeit bei der Entwicklung der beiden Metadatenelemente liegt ganz klar in der Benutzeroberfläche. Sowohl Blende als auch Belichtungszeit werden in der Bilddatei als reine Gleitkommazahl gespeichert. Angezeigt wird die Belichtungszeit aber  beispielsweise als  „1/250 sec“ und nicht als  „0,004 sec“. Ich muss also einen Weg finden, wie die Belichtungszeit für den Anwender bequem eingstellt werden kann,.

Außerdem werde ich wieder an der Bildinformationsansicht weiterarbeiten. Diesmal wird es darum gehen, das der Anwender zwischen verschiedenen Ansichten wechseln kann. Außerdem möchte ich die Funktion zur Definition eigenener Ansichten vorbereiten.