Code Review: CD-Manager & Bilder speichern

Das Projekt mit den Flaggen sorgte dafür, dass ich auch mal wieder eine Anpassung an meinem CD-Manager machen durfte. Nachdem der die letzten Monate einwandfrei funktioniert hat bestand für mich kein Bedarf daran Anpassungen vorzunehmen. Damit die Flaggen immer mit dabei sind und ich die Grafiken nicht einzeln mit ziehen muss, dachte ich mir, es wäre ja wohl am einfachsten diese auch in eine kleine Datenbank zu packen. Den Code dazu habe ich ja schon von meinen CD-Covern und kann den für die Flaggen übernehmen. Gesagt. Getan.

Nachdem die Flaggen in der Datenbank waren, habe ich mich allerdings gewundert, warum die Datenbank so „groß“ ist. Denn die Bilder hatten nur 2 MB. Die Datenbank war aber gut drei Mal so groß. Dabei ist mir dann aufgefallen, dass das mit dem Bilder speichern zwar ganz gut funktioniert, doch da im Hintergrund irgendwas schief läuft. Also macht man mal eine „Code Review“. Viel Code steckte da ja nicht dahinter. Als ich mir den Code nochmal angesehen habe, kamen ich dann schnell ins grübeln:

Ich lade den Inhalt der Grafik in ein Byte Array. Aus diesem Byte Array erzeuge ich einen MemoryStream und dadurch dann das .NET Image, welches ich in der PictureBox anzeige. Beim Speichern habe ich dann das .NET Image genommen und gespeichert. Mit dem Unterschied, dass das nicht mehr das Original Bild war. Und zudem auch in etwa drei Mal größer. Okay. Somit wurde das Problem gefunden. Doch warum speichere ich nicht einfach den Byte Array des Bildes in der Datenbank? Das ist ja schon ein Bild. Mehr Bild kann es ja nicht werden. Und siehe da. Schon braucht die Flaggen Datenbank auch nur noch ca. 2 MB.

Doch was mache ich mit meinen CD-Covern? Da müsste ich die ja auch alle neu speichern. Ich glaube es hat länger gedauert den Fehler im CD-Manager zu korrigieren als das neu speichern aller Cover. Ich habe doch meine CDs in einer übersichtlichen Struktur auf der Festplatte abgelegt. Zudem habe ich ein Programm mit dem ich meine CD-Daten mit den ID Tags und Dateinamen vergleichen kann. Das Tool zeigt mir auch an, wenn ich in einem Ordner keine Datei mit Namen ‚folder.jpg‘ liegen habe. Von daher war die Lösung ganz einfach. Cover Datenbank löschen. 10 Zeilen Code zu dem Validator hinzufügen. Starten. Warten. Fertig!

Das Ende vom Lied: Meine Cover Datenbank ist jetzt keine 130 MB mehr groß, sondern nur noch 40 MB. Das Ganze wirkt sich dann natürlich positiv auf den Web-CD-Manager und das Spiel Cover Covered aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert