Bilder generieren oder verlinken?

Transporter

Mitglied
Hallo Leutz !

Ich habe mal eine ganz theoretische Frage.

Ich benötige auf meiner Webseite ganz viele kleine, manchmal sehr ähnliche, manchmal ganz verschiedene Images. Momentan binde ich diese noch mit <img src='image.gif'> ein.

Wenn ich diese Images per PHP erstelle, wird das Ausgeben der Bilder dann theoretisch schneller oder braucht die Ausgabe dann länger, da das Bild erst noch generiert werden muss?

Einerseits würde mir die generierung per PHP entgegen kommen, da sich die Bilder sehr öft nur in Farbtönen unterscheiden, andererseits möchte ich keine Performanceeinbrüche haben.

Gruß und vielen Dank an Eurer gesprächsteilnahme!
 
Du kannst sie ja beim ersten mal generieren lassen und dann automatisch speichern. Jeder weitere Aufruf greift dann auf das gespeicherte Bild zurück.

PHP:
function createColoredImage($farbe)
{
    if(!file_exists("images/{$farbe}.jpg"))
    {
        // erstelle Bild und speichere als $farbe.jpg
    }

    return "images/{$farbe.jpg}";
}

echo '<img src="'.createColoredImage("ff0000").'" alt="">';
 
Nehmen wir mal an, dass du Fotos verwaltest, anhand dessen ein paar Dinge, wie du es umsetzen solltest.


Bilder per Formular hochladen oder per FTP, Scripts zum konvertieren anlegen für folgende Aufgaben:

- Wenn Thumbnails eingesetzt werden sollen, diese mit PHP umwandeln in die verschiedenen Größen, kann man zum Beispiel mit ImageMagik machen
- Farbanpassungen lassen sich ebenfalls durch Grafikbibliotheken umsetzen



Generell gilt auch:

- Bilder generell on-the-fly zu generieren ist viel zu kostspielig (Zeit und Performance)!
- Langsamer Seitenaufbau durch viele img-Tags bedeutet, dass der Browser extrem viele HTTP-Requests an den Webserver schicken muss. Meist können die Browser nur 2 oder 4 HTTP-Requests gleichzeitig pro Domain abschicken. Um die Seite zu beschleunigen gibt es 2 Möglichkeiten: Die Bilder auf verschiedenen Seiten aufteilen oder eine Subdomain für die Bilder einrichten, so dass Bilder immer von der URL http://images.example.com/Bilname.png geholt werden.
- Bilder niemals komplett in der Datenbank speichern, sondern nur die Verweise auf das Dateisystem sowie diverse Metaangaben
 
Also wenn ich das richtig verstanden habe, sollte ich Bilder als Grundelemente haben die ich auch verwende und diese nur per PHP manipulieren. In meiner Datenbakn sind natürlich nicht die eigentlichen Bilder abgespeichert sondern nur der jeweilige Verweis.

Wenn ich ein kleines Bild als Grunddatei habe und dieses in vier verschiedenen Farben ausgeben will, kann ich das so machen, daß ich eine Grunddatei habe und diese dann per PHP bearbeite?

Ist das dann schneller als vier verschiedene Bilder zu laden oder braucht PHP auch für das Verändern der Bilder grundsätzlch länger?
 
Zurück