Bilder veröffentlichen ohne fremde Dienste
Seit einer langen Zeit nutze ich Flickr. Das Bilderportal, das im Mitmachstil des Web 2.0 gefertigt ist, bietet einige Möglichkeiten für das Verwalten der eigenen Bilder und natürlich auch, um diese zu verbreiten und zu teilen. In der Mac-Szene, der ich einst angehörte – damals als Apple noch der David und Microsoft als Goliath ihre Rollen spielten – ist Flickr noch stärker verbreitet. Immerhin gehört das Teil nicht zum Google-Konzern, sondern zu Yahoo. Trotzdem stört mich, dass ich keine Kontrolle über den Verlauf und vor allem über die Speicherung der Bilder habe. Deswegen habe ich mir eine einfache, kleine Applikation geschaffen, die meine Bedürfnisse befriedigt. Mindestens einstweilen.
Noch immer betreibe ich ein virtuelles Serverli bei HostEurope, natürlich mit Ubuntu als Betriebssystem. Zwar noch Dapper, aber diese Version wird noch immer mit Updates versorgt. Dort baute ich mir mit MySQL und PHP die Sachen zusammen. Im Bereich PHP bin ich nicht so der Hirsch und so durfte ich bei der Erstellung der Technik einiges lernen. Im Web findet man ja zum Glück zu fast allen Herausforderungen mit PHP eine Lösung; manchmal sogar zu viele (verschiedene) Ansätze. Eigentlich hätte ich gerne mit CakePHP etwas gebaut, aber damit bin ich noch nicht so weit. Ich muss Roland nochmals dazu bringen, dass er erneut eine Session an einem Barcamp irgendwo im nördlichen Halbkreis anbietet.
Im Grossen Ganzen lade ich per PHP ein Bild hoch, vergebe einen Namen, erzeuge daraus ein Vorschaubild, übergebe den Namen als verstecktes Feld einem Formular, mit dem dann die Metadaten zum Bild erfasst werden. Danach wandert alles in eine Datenbank. Die Bilder liegen je in einem Album, welche wiederum in Sammlungen zusammengefasst werden; ganz wie bei Flickr. Dafür habe ich ein Backend erstellt, das multiuser-fähig ist.
Zurzeit suche ich noch nach einer besseren Lösung, um die Bilder automatisch zu verkleinern. Die Qualität passt mir nicht. Ich nutze ImageCreateFromJPEG und seine Artverwandten, dafür währe wohl imagemagick besser geeignet. Das habe ich aber noch nie benutzt; es wäre also höchste Zeit dafür.
Weiter stand ich zunächst bei der Verlinkung der Tags an. Ich schreibe alle Tags pro Bild in ein Feld, getrennt durch Kommas. Das ist wahrscheinlich nicht unbedingt die schönste Form der Normalisierung, aber es klappte dann doch noch mit der Funktion explode, mit der ich den String in ein Array wandeln und dann mit einer for-next-Schlaufe ausgeben kann. Ebenso fand ich bei Laut und Klar eine Anleitung, wie man mit PHP die Exif-Daten eines Digitalbildes auslesen kann. Funktioniert bestens! Daneben habe ich noch eine Kommentarfunktion, RSS-Feeds, Mitteilungen an identi.ca und Twitter, eine Suche, eine Lizenzform pro Bild und verschiedene Formen der Ansicht eingebaut.
Bis auf die Qualität der Vorschaubilder bin ich soweit zufrieden. Das eine oder andere kosmetische Element werde ich wohl noch einbauen und wahrscheinlich auch sonst noch etwas daran feilen. Aber mein Ziel habe ich erreicht: Ein selbstgehostetes Applikatiönli, mit dem ich spätestens an den Linux-Tagen zu Chemnitz einige Bilder präsentieren kann. Die sind ja schon bald; am 13. und 14. März 2010.




04. März 2010 um 12:51 Uhr
Cool, habe ich doch gestern gleich richtig vermutet, dass du Flickr den Rücken kehren willst, sieht gut aus deine kleine Applikation!
Sag kannst du automatisch zu identi.ca posten oder machste das manuell?
04. März 2010 um 12:59 Uhr
Danke, Ute!
Ich löse es manuell aus, könnte es aber automatisieren. Ich will aber immer zuerst lugen, ob alles passt, bevor ich dente
04. März 2010 um 13:13 Uhr
Hab das auch schon bei mir entdeckt und mich (kurz) gewundert. Sieht hübsch aus
04. März 2010 um 16:44 Uhr
Warum nicht einfach Gallery oder Gallery2?
04. März 2010 um 16:46 Uhr
@Bernd: Weil das Teil nicht alles hat, was ich will und vor allem nicht so, wie ich es will
04. März 2010 um 17:52 Uhr
Hallo Roman!
Sag mal, steht dieser Service allen zur Verfügung, oder nur einem bestimmten Kreis? Das habe ich irgendwie nicht herauslesen können
Gibt es diese von dir programmierte Software als open source Projekt? Habe mich mit einem ähnlichen Problem auch auseinandersetzen wollen, hatte leider noch keine Zeit.
Viele Grüße, Benni
04. März 2010 um 21:36 Uhr
Super Sache, wirklich.
Ich stehe vor dem gleichen Problem, kann allerdings nicht programmieren, daher schlage ich mich derzeit mit diversen Plugins für drupal herum.
Das Ganze ist aber etwas overkill für mich, Deine Aplikation scheint mir da eleganter.
Kann ich irgendwie benachrichtigt werden, wenn das Ding oss wird?
Ich danke vielmals,
Thomas
04. März 2010 um 23:26 Uhr
Uups… Jetzt muss ich aber wirklich ran an das Teil. Ich habe es ja bloss für mich geschrieben und hoffte, dass ich mit diesem Beitrag den einen oder andern Tipp bekäme. Stattdessen soll ich nun OSS erzeugen
Wenn ich bloss etwas besser und vor allem sauberer programmieren könnte, wäre es mir noch so lieb, das Teil freizugeben.
Daher schlage ich folgendes Vorgehen vor:
1. Ich muss alle “hardlinks” durch Variablen ersetzen. Da ich das Teil ja bloss für mich und allenfalls meine Frau gemacht habe, sind da noch einige Dinge nicht bereit, um sie auf diversen Servern laufen zu lassen. Viele Verweise sind hart verdrahtet, statt variabel in einer Konf-Datei notiert.
2. Den Code möchte ich gerne noch mit einem Kollegen anschauen und allfällige, grobe Schnitzer rausmachen.
3. Allenfalls will ich noch besser zwischen Funktionen und Kosmetik trennen.
Ja, und den Rest können wir dann in der Gemeinschaft verbessern.
Das ist dann aber nicht schon morgen fertig, gäll
05. März 2010 um 11:02 Uhr
Schick, wenn man sowas selbst programmieren kann! Aber warum hast du nicht einfach eine fertige Lösung wie Coppermine installiert? Das wär doch sicher einfacher gewesen. Oder ist das nicht das, was du an Funktionsumfang brauchst?
05. März 2010 um 11:07 Uhr
@Liane: Ja, ich hatte eine zielmlich genaue Vorstellung vom Funktionsumfang und diesen habe ich bei keinem bestehenden Projekt gefunden. Sowas ist ja relativ schnell gemacht. Nach etwa 25 Stunden war ich soweit, inklusive dem FrontEnd und allem. (Mit CakePHP ginge das noch wesentlich schneller, aber das kann ich noch immer nicht nutzen, weil ich zuwenig darüber weiss.)
05. März 2010 um 11:19 Uhr
@Roman: Nicht schlecht. Leider kann ich sowas (noch) nicht…
06. März 2010 um 09:06 Uhr
Finde ich sehr Gut und freue mich, wenn es FOSS ist.
Vor allem verstehe ich Deine Aussage mit Gallery;)
Grüsse und weiter so
Chris
06. März 2010 um 19:57 Uhr
Hi Roman,
)
wenn du schon schreibst, dass ich wieder mal eine CakePHP Session machen soll, schlage ich was Anderes vor.
Meine Piratenkollegen wollen bald mal eine “richtige” Schulung bei der wir ein schönes CakePHP Programm schreiben.
Ich biete an, dass wir in den nächsten Samstagen mal hier bei uns eine Session machen bei der ich das CakePHP Framework ein wenig tiefer erkläre.
Für Ute habe ich einen Mailservice gebastelt mit dem man Bilder in eine Galerie laden kann und die notwendigen Tags usw. gleich mit reinfummeln kann.
Dieses Ding könnten wir als Schulungsobjekt nehmen.
Dann kannst du diese Galerie mitnehmen und bei dir einbinden.
Wäre das was?
Falls ja, lass mich wissen an welchem Samstag du kannst.
(Am 20. März kann ich nicht, da muss ich gegen das Konzerthaus auf Klein Venedig demonstrieren
Grüsse
Roland
06. März 2010 um 22:31 Uhr
Hey, danke Roland! Das ist ja supergeil! Entschuldigung für das Wort, aber das musste jetzt sein;-)
Ich lasse Die eine Mail zukommen mit den Daten, die mir passen.
Danke!
21. März 2010 um 12:53 Uhr
[...] Roman hatte gefragt und Roland entschloss sich dann die Schulung anzubieten, Artikel dazu auf Guggat emol und im Piratenwiki. Roman hatte ähnlich wie ich vor kurzem die Idee einen Bilderservice mit Galerie zu nutzen der Flickr, pikchur, twitpic und ähnliches ersetzen kann. [...]