noname: gdlib

hi,

kennt hier jemand ne ordentliche lösung um thumbnails zu erstellen???

imagecreate (läuft auf gb 1.6 sehr gut, aber auf neueren versionen total bescheiden)

imagecreatetruecolor (läuft auf neueren versionen -> 2.1 sehr gut, aber auf unter 2.1 gar nicht :-( )

kennt sich da jemand aus???

gibts ne möglichkeit die bei allen versionen gut läuft?

gibt es überhaupt noch server mit gdlib unter 2.1?

wie würdet ihr das lösen?

bitte antwortet...

  1. Hallo noname (warum eigentlich?)

    Da es noch viele Server mit GD 1.6 (wg der gif_Schreibunterstüzung) gibt, machst Du am Besten eine Fallunterscheidung. Da ich auch schon einen Server hatte, der gd_info() nicht zur Verfügung stellte, definiert Du am besten eine zentrale Konstante GD_VERSION, die Du fuer jeden Server anpasst.

    Gruss Olaf

  2. Moin!

    imagecreate (läuft auf gb 1.6 sehr gut, aber auf neueren versionen total bescheiden)

    Definiere "bescheiden"? Die Wirkungsweise der Funktion hat sich meines Erachtens nicht geändert.

    imagecreatetruecolor (läuft auf neueren versionen -> 2.1 sehr gut, aber auf unter 2.1 gar nicht :-( )

    Halb korrekt: Truecolor geht seit gdlib 2.0.1 und PHP 4.0.6 (was man durchaus selbständig zusammenbasteln könnte - ich habe aber außer PHP 4.3 mit gebundelter gdlib 2 sowas noch nicht gesehen).

    gibts ne möglichkeit die bei allen versionen gut läuft?

    Nein. imagecreate() legt ein 256-Farben-Bild an. Damit kriegst du sowieso Probleme. Mag sein, dass bei gdlib < 2 die Bilder automatisch einer Farbreduktion unterzogen wurden - das sorgt spätestens dann für Probleme, wenn du das Bild nicht nur verkleinern, sondern auch reinzeichnen willst.

    imagecreatetruecolor() ist definitiv zu bevorzugen. Du kannst mit function_exists() ja mal testen, ob du bei gdlib < 2 false als Ergebnis erhälst, und dann entsprechend verzweigen.

    Bedenke, dass du im Prinzip auch imagecopyresampled() benutzen willst, anstatt nur imagecopyresized(). Die Qualitätsunterschiede sind enorm, allerdings auf Kosten der Zeit (vor allem gravierend bei geringem Speicher und großen Bildern).

    gibt es überhaupt noch server mit gdlib unter 2.1?

    Alle, die PHP < 4.3.0 einsetzen, würde ich mal sagen. Das ist gut daran zu erkennen, dass die Funktion gd_info() auch erst sein 4.3.0 existiert (womit du dann ganz einfach die gdlib-Version abfragen könntest).

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr)