1211chef: Gedrehte Bilddateien abhängig vom Endgerät - wie begegnet ihr der Sachlage

beschäftige mich grade mit einer webbasierten handyversion, u.a. mit bildupload. lade ich bilder mit meinem eierphone hoch, erscheinen sie korrekt gedreht. schau ich sie mir dann am desktop an oder auf nem android stehen die bilder auf dem kopf oder liegen seitlich.

das problem ist jetzt folgendes: ich könnte dem user, zb. mit image::magick eine funktion zur verfügung stellen, mit der er nach dem upload die bilder richtig drehen kann. aber zb. ein eierphone-nutzer sieht gar nicht dass das bild gedreht ist, da das eierphone das intern richtig stellt und ihm die gedrehte version als richtig darstellt.

ich frage mich jetzt, ob, wo, wie diese informationen zb. in nem jpg gespeichert werden und wie ich die misere am besten abfangen kann bevor sie entsteht.

ich hoffe sehr ihr könnt mir was dazu sagen und wir können das ausdiskutieren.

so kann ich das nicht lassen.

gruss gust

ps: portale wie eba* kleinanzeigen haben das im griff, also muss es auch für mich möglich sein.

pps: allen erst mal nen schönes we ::bier::party::fun:: ... ich kuck mir dann am montag eure lösungen an ;D. also schon mal tausend dank für eure hilfe

  1. ich frage mich jetzt, ob, wo, wie diese informationen zb. in nem jpg gespeichert werden und wie ich die misere am besten abfangen kann bevor sie entsteht.

    Exif-Daten: Was das ist:

    https://de.wikipedia.org/wiki/Exchangeable_Image_File_Format

    Wie man die löscht erfährst Du bei der Suchmaschine Deines am wenigsten unerhörten Misstrauens.

    beschäftige mich grade mit einer webbasierten handyversion, u.a. mit bildupload.

    Wenn Dir die Poblematik der Exif-Daten nicht bekannt ist, dann fürchte ich ganz übles. Einen "Bildupload" sollte kein Anfänger machen, da versagen ganz andere und bauen Sicherheitslöcher ein, die so groß wie ein Universum sind.

    1. Die Vorgehensweise ist in PHP und Perl identisch. Nur die Funktionen heißen anders.

      1. Die folgenden PHP-Funktionen sorgen dafür, dass wirklich Grafiken des angegeben Typs geladen werden:

      • imagecreatefromgif() → imagecopyresized() → imagegif()
      • imagecreatefrompng() → imagecopyresized() → imagepng()
      • imagecreatefromjpeg() → imagecopyresized() → imagejpeg()

      2. Du kannst also zugleich das Bild in Originalgröße, bestimmte Größen sowie eventuell gewünschte Thumbnails erzeugen. Wenn das nicht klappt, dann war es kein Bild…

      3. Dabei werden auch die störenden bzw. die Privatsphäre schädigenden Exif-Daten gelöscht. Also auch die Angaben zur Rotation.

      4. Vergiss nicht, dass Du stets den Dateiname bestimmst. md5( $Originaldaten ) ist eine Möglichkeit.

      5. Lösche nach dem Kopieren den Upload aus dem Temp-Verzeichnis.

  2. ich kuck mir dann am montag eure lösungen an

    Kennst Du schon CPAN? Solltest Du mal kuckn echt der Knaller!

  3. @@1211chef

    die bilder richtig drehen

    slightly related: XKCD 😂

    LLAP 🖖

    -- „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
  4. Hallo 1211chef,

    ein funktionierendes Vorgehen ist: ImageMagicks convert mit -auto-orient das Bild richtig drehen lassen und mit -strip die EXIF-Daten zu entfernen.

    So wird das Bild in jedem Gerät gleich dargestellt, und, sofern die EXIF-Daten nicht lügen, auch in der richtigen Orientierung.

    LG,
    CK

    -- https://wwwtech.de/about