Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Auflösungen von hochgeladenen Bildern, Ansatz

Einklappen

Neue Werbung 2019

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

  • Mehrere Auflösungen von hochgeladenen Bildern, Ansatz

    Hallo,

    ich implementiere gerade eine Anwendung bei der Nutzer Bilder hochladen können. Eine Version der Uploade/Verarbeitungs-Logik habe ich schon geschrieben, mache diese aber nochmal neu. (überlege diesmal ImageMagick zu benutzen)

    Die hochgeladenen Bilder werden in verschiedenen Auflösungen benötigt (mindestens drei) und sollten auch eine Mindestgröße haben.

    Ich suche nach einem Best Practice Ansatz, wie man generell mit von Usern hochgeladenen Bildern, die in mehreren Auflösungen benötigt werden, verfahren soll, also:
    1) Welche Größen und Formate erlaubt man
    2) Welche Überprüfungen sind notwendig
    3) Welche Konvertierungen sollten gemacht werden
    4) Generiert man für jede Qualitätsstufe ein eigenes Bild
    5) Speichern der Bilder (Filesystem oder Datenbank)

    Danke!

    christoph

  • #2
    Hallo Christoph,
    das kommt alles darauf an, was für eine Anwendung du überhaut genau schreiben möchtest und welche Serverumgebung du verwendest (Speicherplatz, Rechenleistung).
    Wenn es um qualitativ hochwertige Bilder geht, würde ich diese in einer festgelegten maximalgröße (Abmessungen/Qualität/Dateigröße) in JPEGs konvertieren und irgendwo ablegen. Von dort können dann je nach Anforderung durch bestimmte Scripte andere Auflösungen je nach Verwendungszweck erzeugt werden. In diesem Fall kannst du auch sehr gut abschätzen, wie viele Bilder auf deinem Space hinterlegt werden können, da diese nur geringe Größenunterschiede aufweisen werden. Beachten solltest du jedoch, dass das Erzeugen von neuen Bildern bei hohen Auflösungen hohe Rechenleistung benötigt. Wenn also viele Nutzer gleichzeitig Anfragen senden oder du viele Bilder hintereinander neu erzeugst, kann der Server ganz schön in Mitleidenschaft gezogen werden.
    Zu 1.: Als Eingangsformate (Upload) würde ich in diesem Fall JPEGs, PNGs und eventuell auf GIFs erlauben, bei Transparenzen musst du diese jedoch gesondert umformen.
    Zu 2.: Als Überprüfung wäre Dateityp und Dateigröße angebracht. Die Dateigröße sollte sich auch an den Einstellungen in der PHP-INI orientieren.
    Zu 3.: Wie gesagt würde ich vorschlagen, alle Bilder in platzsparende JPEGs umzukonvertieren und die Größe entsprechend einer Maximalgröße in Sachen Abmessung, Qualität oder Dateigröße festzusetzen. Ist das Bild kleiner, musst du schauen, ob du so kleine Bilder erlaubst und diese statt in der Maximalgröße in der Original ablegst oder diese abweist.
    Zu 4.: Besonders bei den Qualitätsstufen würde ich auf on-the-fly-generierung zurückgreifen. Hier hast du dann auch den Vorteil der JPEG-Ausgabe, da du die Qualität sehr detailliert einstellen kannst.
    Zu 5.: Speichern solltest du die Bilder am Besten im Dateisystem und von dort auslesen. Du kannst ja entsprechende Verweise in den Datenbanken anlegen, wenn du sonst mit Datenbanken arbeitest. Ein Speichern in der Datenbank kann sehr große Performance-Schwierigkeiten mit sich bringen. Für mehr Infos vielleicht einfach mal Googlen oder hier schauen: Datenbanken - Ist es sinnvoll, Bilder in einer Datenbank abzulegen?.

    Viele Grüße!

    Kommentar

    Lädt...
    X