Ankündigung

Einklappen
Keine Ankündigung bisher.

Generierung/Speichern/Cachen von Bildern in verschiedensten Größen

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Generierung/Speichern/Cachen von Bildern in verschiedensten Größen

    Hey Leute

    Biete meinen Usern die Möglichkeit Bilder hochzuladen.
    Nur kommt mir die Frage auf, wie ich denn mit der Ausgaben in verschiedensten Formaten umgehen soll.

    Das Bild wird nämlich in sehr viel verschiedenen Formaten verwendet. Einmal mit dieser Breite in der Sidebar, dann mal zugeschnitten als Tumbnail, als nächstes in 1080p in der Lightbox, ein weiteres mal in einem Blog-Eintrag in dieser Höhe.

    Habe es bisher so gelöst, dass ich mir das Bild nur in 1080p (sprich 1920x1080 Pixel) speichere und dieses per PHP im gewünschten Format mittels individueller URL ausgeben lasse.

    Als Beispiel: 'example.com/media/bestfit/64x64/5672389.jpg'. >>> somit erhalte ich mein Bild, dass aber auf 64x64px zugeschnitten ist.

    Wie viel Leistung frisst diese Methode? Ist diese zu empfehlen?

    Habe mir auch überlegt alles zu Cachen oder über ein CDN laufen zu lassen, somit wird der Server ja nur einmal mit der Generierung beansprucht. Doch auch da könnte es ja passieren, dass ein User Spaß dran hat jedes Bild in jeder Größe aufzurufen und somit unnötig viele Daten erstellt. Ein Logging System für Fotos, um eben das zu verhindern, ist glaube ich übertrieben...

    Wie händeln das 'größere' Netzwerke? Welche Methoden nutzt ihr?

    Vielen Dank!




  • #2
    Die gravierendsten Problem hast du doch schon ausfindig gemacht, wo ist da also noch das Problem? .

    Thumbnails im voraus erstellen: kann man machen, muss man aber nicht. Ich würde bei Projekten ohne spezielle Anforderungen immer on the fly erzeugen. Damit bist du flexibel und musst dir nicht viele gedanken machen was du genau brauchst, das kannst du damit jederzeit ändern. Natrürlich bedeutet on the fly nicht das du bei jedem Aufruf das Thumbnail neu erzeugst. Ein Serverseitiges caching ist da natürlich pflicht. Ein missbrauch dieser Funktion ist einfach mit einer whitelist zu verhindern oder Konfiguration. Eine Konfiguration bietet sich bei dir so oder so an. So wie ich das verstehe willst du auch bestimmte Formate haben die beschnitten werden und andere die die Original-Proportionen beibehalten.

    PHP-Code:
    $config = [
        
    'blog' => ['width' => 400'height' => 300'corp' => false],
        
    'preview' => ['width' => 64'height' => 64'corp' => true],
        
    'full' => ['width' => 1000'height' => 1000'corp' => false],
    ];

    ->

    example.com/media/bestfit/preview/5672389.jpg
    example
    .com/media/bestfit/blog/5672389.jpg
    example
    .com/media/bestfit/full/5672389.jpg 

    Kommentar


    • #3
      ich würde nur die weite angeben, da sich die höhe dadurch ergibt.
      zudem kann man sich auch gedanken darüber machen, ob es sinning ist blog/preview/full eine feste grösse mitzugeben.

      eine whitelist bei der one-the-fly bildgenerierung, sowie ein zwingend notwendiges chaching reichen da mE. schon aus.
      um deine bilder responsive auszugeben ist sowas wie imager.js sicher nicht verkehrt mal anzuschauen.

      Kommentar


      • #4
        Es gibt dafür auch mindestens ein Package (On-the-fly-Generierung, Caching, Manipulation anhand von Parametern), nur erinnere ich mich leider an dessen Namen nicht.

        Kommentar

        Lädt...
        X