# Erstellen eines Fotoalbums mit Java



## Konstantin-S (17. Feb 2016)

Hallo Community!

Ich versuche mich gerade daran ein Fotoalbum mit Java selbst zu erstellen. Ziel ist es ein Fotoalbum zu erstellen welches auf ein Verzeichnis zugreift in dem Bilder sich befinden. Diese Bilder sind alle mit einem Datum beschriftet und sortiert (bspw. Bild1 (20160217) Bild 2 (20160216) usw.). Es gibt immer nur ein Bild zu einem Kalendertag! Das Programm bzw. das Fotoalbum soll dabei helfen auf das Datum mit dem dazugehörigen Bild so schnell es geht zugreifen zu können ohne jedes mal auf den Ordner zu gehen und nach dem benötigten Datum bzw. dem benötigten Bild suchen zu müssen.

Beispiel:

Ich habe 365 Bilder (also je ein Kalendertag) vom Jahr 2015 und möchte nun das Bild vom 17.02.2015 haben. Ihr könnt euch vorstellen, dass es etwas dauert bis man das richtige Bild aus dem Verzeichnis rausgesucht hat, wenn man nur mit der Maus übers scrollen versucht das gesuchte Bild zu finden. Ein Fotoalbum welches die Bilder in ihr zugehöriges Datum einteilt würde einem dabei helfen schneller an das angeforderte Bild zu kommen. Bspw. ich gebe das Datum ein und das Programm sucht für mich sofort das Bild zu dem angefordertem Datum.

Leider ist es bei mir etwas her, dass ich mich mit Java auseinandergesetzt habe. Ich muss also nun bei null beginnen und mich einarbeiten. Ich weiß jetzt bspw. nicht, ob ich das ganz normal mit eclipse machen kann oder soll. Wie ich überhaupt anfangen sollte. Wie kann ich dieses Programm dann als Desktop Plattform erstellen usw. Im Netz habe ich mich auch schon auf die Suche gemacht und bin da noch nicht soweit gekommen.

Dieses Programm soll aber nicht an eine Seite gekoppelt sein (html), sondern nur für das interne private Netzwerk genutzt werden.

Ich hoffe ihr könnte mir dabei helfen reinzukommen und mir den Weg zu zeigen.

BG

Konstantin


----------



## Joose (17. Feb 2016)

Du willst also nur rasch das Bild zu einem bestimmten Tag anzeigen lassen? Sonst soll das Program nichts können? Durchgehen der Bilder mittels weiter/zurück Button oder so?


----------



## Konstantin-S (17. Feb 2016)

Gut das du fragst

ein weiter/zurück Button sollte dieses Programm auch beinhalten. Insgesamt sollen noch weitere Funktionen eingearbeitet werden. Für den Anfang würde es aber reichen, wenn man Bilder von einem bestimmten Tag anzeigen lassen könnte und auch zwischen den Bilder vor und zurück gehen könnte.


----------



## Joose (17. Feb 2016)

Gut aber das wäre ein wichtiger Punkt.
Würde es wirklich rein darum gehen das richtige Bild zu einem Datum anzuzeigen ist das Program recht schnell geschrieben 
Eine JOptionPane Abfrage für das Datum und dann einfach die Windows Fotoanzeige mit den richtigen Parametern starten.



Konstantin-S hat gesagt.:


> Leider ist es bei mir etwas her, dass ich mich mit Java auseinandergesetzt habe. Ich muss also nun bei null beginnen und mich einarbeiten. Ich weiß jetzt bspw. nicht, ob ich das ganz normal mit eclipse machen kann oder soll. Wie ich überhaupt anfangen sollte. Wie kann ich dieses Programm dann als Desktop Plattform erstellen usw. Im Netz habe ich mich auch schon auf die Suche gemacht und bin da noch nicht soweit gekommen.
> 
> Dieses Programm soll aber nicht an eine Seite gekoppelt sein (html), sondern nur für das interne private Netzwerk genutzt werden.



Ob du den Code deines Programmes nun in einem Texteditor oder einer IDE schreibst bleibt dir überlassen. Ich würde aber eine IDE (wie zum Beispiel Eclipse, andere wären NetBeans oder IntelliJ und ist eigentlich nur Geschmackssache) empfehlen, dass vereinfacht einiges.

Bevor du eine schönes UI zusammenbaust (oder klickst) setze dich doch mal an die grundlegende Logik: Du bekommst ein Datum (Format egal?) und willst das passende Bild dazu finden.
Sprich du brauchst eine Methode welche ein Datum als Parameter übergeben bekommt und dann als Rückgabe das Bild liefert, bzw. eine Klasse welche auch den Pfad zum Bild enthält und wenn notwendig weitere Daten.
Wenn das klappt würde ich erst mit der UI anfangen.


----------



## Konstantin-S (18. Feb 2016)

Großen Dank für deine Hilfe! Jetzt habe ich zumindest eine Richtung in die das ganze gehen soll. Eine Sache wäre da noch...Wenn ich den Code in Eclipse geschrieben habe und dieser keine Fehler aufweist, ist mein Programm an Eclipse gekoppelt bzw. um dieses Programm starten zu können muss ich es über Eclipse laufen lassen oder verstehe ich das falsch? Soweit ich mich erinnern kann, kann man auch ein desktop icon erstellen, welches das Programm startet. Es wäre dann im endeffekt ein kleines Programm wie es jeder kennt, welches eine Platform öffnet. Diese Plattform muss ich dann weiter über codes aufbauen oder wie läuft das? 

Ich möchte dann nach 2-3 Monaten ein Programm haben welches über ein Desktopicon gestartet wird und mir ein Fenster bzw. eine Plattform anzeige, wo ich dann in eine Zeile mein Datum bspw. eingeben kann und ich das angefordert Bild bekomme. All das muss ich über Eclipse machen und codes hierfür erstellen, richtig?


----------



## kneitzel (18. Feb 2016)

Die Applikation ist nicht an Eclipse gebunden. Aber es ist eine Java Runtime gebunde, d.h. der Rechner, auf dem die Applikation laufen soll, benötigt eine JRE. Diese kann man prinzipiell auch der Anwendung mitgeben.

Wie die Applikation dann weiter gegeben wird, ist Dir überlassen. Die Möglichkeiten gehen von der Bereitstellung der .class Dateien in einer Verzeichnisstruktur (eher unüblich) über die Erstellung einrr jar Datei bis hin zum Packen der Applikation in ein Binary (z.B. eine exe unter Windows).

Damit kannst Du Dich dann aber später beschäftigen, wenn die Applikation soweit fertig ist.


----------



## Konstantin-S (18. Feb 2016)

Alles klar, danke für eure Hilfe. Ich werde mich dann jetzt erstmal mit dem ersten Teil beschäftigen und den Code für die Abfrage in eclipse schreiben. Sobald ich dieses fertig haben werde ich mit sicherheit eure Hilfe wieder benötigen und würde mich dann bei euch melden. Eine Sache ist da noch und zwar sind die Bilder in dem von Windows genutzten Format "bmp". Hiermuss ich nehme ich an bei dem schreiben des Codes auch darauf achten, dass er dieses Format lesen kann, richtig?


----------



## Joose (18. Feb 2016)

Natürlich muss man darauf achten ob Java entsprechende Formate kennt und verarbeiten kann. 
Aber laut diesem Link sollte es keine Probleme mit BMP geben:
https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html


----------



## RalleYTN (19. Feb 2016)

Joose hat gesagt.:


> Natürlich muss man darauf achten ob Java entsprechende Formate kennt und verarbeiten kann.
> Aber laut diesem Link sollte es keine Probleme mit BMP geben:
> https://docs.oracle.com/javase/tutorial/2d/images/loadimage.html


Da wird auch gesagt, dass Java JPEGs unterstützt. Stimmt nur halb. JPEGs mit einem CMYK Farbraum sorgen für Fehler. Als ich einmal auf den Fehler gestoßen bin, habe ich extrem lange gesucht ob es nicht eine Lösung dafür gibt. Das hier hatte ich gefunden: https://github.com/haraldk/TwelveMonkeys
löst nicht nur das Problem mit CMYK JPEGs sondern bietet auch an weitere Bildformate zu lesen.


----------

