Posts Tagged ‘Miniaturbilder’

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 … 

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.

Erweiterung des Exif-Moduls

Donnerstag, Dezember 22nd, 2011

Ich hatte ja kaum damit gerechnet, aber ich habe es doch tatsächlich geschaft, in diesem Jahr noch eine Entwicklerversion fertigzustellen. Die Fertigstellung der stabilen Softwareversion war genau der Motivationsschub, den ich gebraucht habe. Es macht doch deutlich mehr Spaß, etwas neues zu entwickeln als immer nur Fehler zu suchen und zu korrigieren. Dies nun wird aber die definitiv letzte Version des Jahres sein, denn viel Zeit ist ja nicht mehr und die Feiertage möchte ich ehrlich gesagt nicht am Rechner verbringen.

Was wurde neu implementiert?

Wie bereits angekündigt, war das Ziel für diese Version, das die ungenutzen EXIF-Datenbankfelder genutzt werden. Dazu wurde als erstes natürlich das EXIF-Modul angepasst, welches die entsprechenden Daten aus dem Header ausliest. Außerdem wurden die internen Datenkomponenten so angepasst, das neuen Informationen nach dem Auslesen im Speicher gehalten werden können. Dort stehen die Informationen für zukünfige Erweiterungen am Programm jederzeit zur Verfügung. Die dritte Änderung erfolgte beim Bildimport, denn hier werden die neuen Datenbankfelder gefüllt.

Um nicht nur unsichtbare Änderungen zu programmieren, habe ich noch die Metadatenzuordnungen erweitert. Es kann nun den zusätzlichen Metadatentyp „Verwendete Kamera“ für die automatischen Zuordnungen genutzt werden.

Metadaten mit neuem Metadatentyp "Verwendete Kamera"

Metadaten mit neuem Metadatentyp "Verwendete Kamera"

Was kommt als nächstes?

Eigentlich habe ich vor, als nächstes größere Änderungen an der Oberfläche vorzunehmen. Die neu hinzugekommenen EXIF-Datenfelder müssen in der Oberfläche angezeigt werden. Dazu möchte ich der Miniaturbilder und Filmstreifenansicht, bei dem „Bild markieren“ Knopf einen weiteren Knopf hinzufügen. Durch diesen soll sich ein PopUp-Dialog öffnen, auf dem die EXIF-Daten angezeigt werden. Außerdem soll neben den 3 bekannten Ansichten eine vierte Ansicht hinzukommen,  auf der alle gespeicherten Daten zu einem Bild angezeigt werden. Hier soll im Gegensatz zu dem PopUp-Dialog eine Navigation innerhalb der aktiven Bildliste möglich sein.

Diese Änderungen werden aber wohl etwas nach hinten verschoben, da ich aller Wahrscheinlichkeit nach meine Entwicklungsumgebung auf den neusten technischen Stand bringen will. Mein Delphi 2005 ist mittlerweile bald 8 Jahre alt und es ist wohl von Vorteil, wenn man es durch etwas zukunftssicheres ersetzt. Ich habe in der letzten Woche bereits kurz erfolgreich getestet, ob eine Umstellung auf das neue Delphi XE2 prinzipell machbar ist. In den nächsten Wochen werde ich berichten, zu welchen Veränderungen der Wechsel beim BVASystem führt. Ich hoffe, das ich bei der Umstellung nicht auf allzuviele Probleme treffe und ich mich dann schnell wieder auf die eigentliche Weiterentwicklung konzentrieren kann.

Automatisches Drehen von Fotos und andere neue Funktionen

Mittwoch, August 31st, 2011

Für die Version 2.0.0.27 der Bildverwaltung habe ich diesmal die kompletten drei Wochen Entwicklungszeit benötigt. Dafür sind aber auch drei größere neue Funktionen entstanden, die ich mittlerweile nicht mehr missen möchte. Gerade die Erweiterung des EXIF-Moduls hab ich liebgewonnen.

Die erste Woche habe ich damit verbracht, das kürzlich vorgestellte EXIF-Modul zu erweitern. Es wird nun, sofern es vorhanden ist, das Orientierungs-Tag ausgewertet. Einige Digitalkameras mit Lagesensor speichern dort ab, ob das Bild im Hochformat oder Querformat aufgenommen wurde. Mit dieser Information ist es ein leichtes, die Fotos vor der Anzeige in die korrekte Richtung zu drehen. Es ist richtig schön, das der Aufwand zum Drehen der Bilder quasi komplett wegfällt.

Weiterhin wird das Thumbnail des EXIF-Headers genutzt, damit die Bildmatrix und der Filmstreifen schneller aufgebaut werden können. Es geht nämlich schneller, ein kleines Bild zu laden, als das Gesamtbild zu öffnen und dieses klein zu skalieren. Da das EXIF-Thumbnail wahrscheinlich kleiner ist als die Thumbnails im BVASystem, werden nachdem alle EXIF-Thumbnails geladen wurden, skalierte Originalbilder geladen.  Dieser Vorgang kann allerdings jederzeit abgebrochen werden. Für die Zukunft habe ich mir vorgenommen, den Ladevorgang so zu modifizieren, das zuerst die Bilder geladen werden, die sich im sichtbaren Bereich befinden. Vorerst muss es aber reichen, das die Bilder der Reihe nach geladen werden.

Neu ist auch im Datenbankmodus ein Eintrag für „Fotos ohne Fotoalbum“. Dieser dient dazu, das nachdem die automatischen Zuordnungen durchgeführt wurden, Bilder leicht gefunden werden können, welche noch keinem Fotoalbum zugeordnet sind. Von dort können die Bilder dann manuell einem Fotoalbum zugeordnet werden.

Fotos ohne Album

Fotos ohne Album

Die letzte Änderung betrifft die Metadatendefinitionen. Dort ist es nun möglich, das bereits gespeicherte Definitionen verändert werden können. Kompliziert daran war, das durch eine Änderung ebenfalls der Entscheidungsbaum aktualisiert werden musste. Auch werden nun nicht mehr benötigte Metadatendefinitionen gelöscht. Gelöscht wird zum Beispiel, wenn einem bereits angelegtem Fotoalbum eine neue bereits vorhandene Metadatendefinition zugewiesen wird. In diesem Fall wird die alte Definition nicht mehr benötigt. Beim Löschen von Fotoalben werden ebenfalls nicht mehr benötigte Metadatendefinitionen gelöscht.

Update der Funktionen des Bildbetrachter-Moduls

Sonntag, April 3rd, 2011

Im Jahresfazit des letzten Jahres hatte ich angekündigt, das ich dieses Jahr hauptsächlich damit verbringen werde, die Datenbankfunktionalitäten des BVASystems auszubauen. Daher ist die neue Programmversion, die ab heute zum Download bereit steht, etwas ganz besonderes. Neu hinzugekommen sind nämlich 2 neue Ansichtsmodi, die sowohl im Bildbetrachtermodul, als auch im Datenbankmodul nutzbar sind.

Sucht man in einer Bildliste, die rund 100 Bilder enthält, ein spezielles Bild, so war es bisher nur möglich, das Foto durch ein langsames Durchblättern der Bildliste aufzufinden. In der neuen Miniaturbilder-Ansicht wird der gesammte rechte Bereich der Anwendung dazu genutzt, kleine Miniaturbilder anzuzeigen. Dadurch passen natürlich mehr Fotos auf den Anzeigebereich und die Suche nach einem Bild in der Liste gestaltet sich einfacher. Kurz: Man gewinnt leichter einen Überblick über die Fotos.

Miniaturbilder-Ansicht der Bilddatenbank BVASystem

Miniaturbilder-Ansicht der Bilddatenbank BVASystem

Konsequenterweise habe ich einen dritten Ansichtsmodus implementiert, in dem nur  das große Vorschaubild angezeigt wird. Wie in der altbekannten Oberfläche gibt es unter dem Vorschaubild eine Funktionsleiste, mit der auch ohne Bildliste navigiert werden kann.

Die Ansichtsmodi kann man wechseln, indem man die entsprechenden Buttons im oberen Teil der Ansichten anklickt. Außerdem kann mit den Funktionstasten F5, F6 und F7 zwischen den Ansichtsmodi gewechselt werden. Beim Wechsel von einem Modus zum nächsten, wird das aktuell aktive Foto übernommen. Es ist also möglich, sich ein Bild in der Matrix herrauszusuchen, um es anschließend in der Einzelbildansicht möglichst groß anzuzeigen.

Wie auch beim letzten Update sind die neuen Funktionen nur in einer Rohbaufassung fertig. In der nächsten Version wird also nichts wirklich neues weltbewegendes dazukommen. Ich werde mich stattdessen damit beschäftigen, vorhandene Fehler zu beseitigen. Es passt von daher auch ganz gut, das mein Cheftester gerade eine Menge neue Tickets eingestellt hat, die ich dann so gut es geht ebenfalls bearbeiten werden.