ich stehe vor folgender frage:
wenn ich meine user ein bild uploaden lasse, speichert man das bild in einen ordner, gibt dem bildchen vieleicht noch einen eindeutigen namen, und den pfad in die datenbank!
wäre es auch möglich, das bild in einen ordner zu speichern, und den namen und das dateiformat zu ändern zum bsp gif --> jpg(?kann man das in php?)
damit könnte man ja eigentlich die datenbankabfrage umgehen?
(welches ist eigentlich das fürs web ab am besten geeignete bildformat?)
Es gibt 3 im Web gängige Bildformate: jpg, gif und png. Alle haben sie ihre Eigenheiten, deswegen kann man nicht sagen, welches am besten geeignet ist.
gif unterstützt Bilder mit maximal 256 Farben. Für Fotos kommt es daher in der Regel nicht in Frage. Sehr wohl aber für Grafiken, die aus nur wenigen Farben bestehen. Schriftzüge, Icons, Designelemente etc. Für die Kompression wird der verlustfreie LZW-Algorithmus verwendet, der nach wiederkehrenden Mustern in der Bitfolge sucht. Daher können Bilder mit großen einfarbigen Flächen zum Beispiel besonders gut komprimiert werden, weil sich hier viel wiederholt. Ein Qualitätsverlust trittt möglicherweise bei der Reduktiuon der Bildfarben auf 256 auf. Zusätzlich erlaubt gif eine 1-bit-Transparenzmaske.
jpg erlaubt 24bit Farbtiefe (8 bit je Kanal) und ermöglicht eine fast beliebig einstellbare Bildkompression. Die Kompression geht hierbei zu Lasten der Bildqualität. Kleine Datei --> schlechte Qualität. Zur Kompression wird versucht, die Bildinformationen in jeweils 8x8 Pixel großen Quadraten durch eine Überlagerung von Sinusschwingungen darzustellen. Je nachdem, wie präzise dies erfolgt, sieht man keinen Unterschied zum Original, oder die 8x8-Pixel-Quadrate werden beinahe einfarbig.
png gibt es in verschiedenen "Versionen". Entweder mit 8bit Farbtiefe, dann funktioniert es ungefähr so wie gif. Oder mit 24 bit, dann funktioniert es wie jpg. Allerdings mit dem Unterschied, dass png stets verlustfrei komprimiert. Die Bilddateien werden also in der Regel größer ausfallen als bei jpg. Vorteil: Es unterstützt 8bit-Transparenzmasken, die mittlerweile sogar vom Internet-Explorer korrekt dargestellt werden. Diese Transparenz wird z.B. bei den Schatten auf Google-Maps eingesetzt.
Aufgrund der verschiedenen Eigenschaften gibt es eigentlich immer ein ideales Format. Daher macht es auch wenig Sinn, die Formate auf dem Server ineinander zu überführen. Möglich ist es aber. Ein einfaches umbenennen ist der verkehrte Weg, obwohl die meisten Browser auch eine .gif-Datei mit jpg-Informationen korrekt darstellen.
Die meisten Provider installieren PHP zusammen mit der GD, einer Grafikbibliothek. Damit kannst du recht komfortabel Bilder in diesen 3 Formaten lesen, umwandeln und schreiben.
Eine andere Option wäre evtl. Imagemagick, das kann noch deutlich mehr. Dazu brauchst du Shell-Zugang.
Würde an deiner Stelle aber den ersten Weg gehen, und die Pfade in der Datenbank speichern. Denn wenn mal viele Bilder beisammen sind, wird die Datenbankabfrage um ein vielfaches schneller sein, als den ganzen Ordner zu durchsuchen.