Der Martin: Hilfe bei Image Upload!

Beitrag lesen

Hallo,

Viele gehen so vor:

ich kann mir nicht vorstellen, dass es "viele" sind. Die Methode hat nämlich durchaus auch Nachteile.

Aus $_FILES['file']['tmp_name'] je nach ermittelten (nicht: übertragenen) MimeType mit:

  • imagecreatefromfoo()
    die "Arbeitskopie" für PHP erzeugen. Dann mit
  • imagesx() und imagesy()
    Breite und Höhe feststellen.

Mit diesen Daten und

  • imagecreatetruecolor() sowie imagecopy()
    ein neues Bild erstellen und je nach Wunsch mit
  • imagefoo()
    in die Zieldatei wegschreiben.

Sollte das hochgeladene Bild ein JPEG sein, ergibt sich durch die Neukomprimierung beim Speichern ein möglicherweise relevanter Qualitätsverlust (webp möglicherweise auch). Ein eventuell vorhandenes Wasserzeichen wird dabei auch in Mitleidenschaft gezogen.

Für alle Formate gilt: Eventuell vorhandene Metadaten (ich denke da vor allem an EXIF) sind danach auch weg. Das möchte man aber vielleicht nicht.

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy