WPPP: Neue Methode für Dynamic Image Resizing


Die Funktionsweise des Dynamic Image Resizing Features von WPPP basiert bisher auf der Implementierung von Otto’s (Samuel Wood) Dynamic Image Resizer. Das ganze arbeitet ein wenig kompliziert: Wird ein Bild hochgeladen, dann gibt es einen Filter (intermediate_image_sizes_advanced), mit dem die vorhandenen Bild-Größen bearbeitet werden können. WPPP merkt sich diese Größen und liefert über den Filter einen leeren Array zurück. Das hat zur Folge, dass keine Zwischengrößen der Bilder erzeugt werden. Als nächstes werden im Filter wp_generate_attachment_metadata die gemerkten Größen zu den Metadaten hinzugefügt (was ansonsten durch das Erzeugen der Größen geschehen wäre). Klingt kompliziert? Ist es auch irgendwie.

Aber es funktioniert. Allerdings nur beim Upload. Wird ein Bild bearbeitet, dann werden wieder alle Zwischengrößen des jeweiligen Bildes erzeugt. Denn hier wird die Funktion multi_resize der Klasse WP_Image_Editor verwendet, die keinen der Filter verwendet.

Als ich das herausfand kam mir der Gedanke: Moment mal! Wird die Funktion vielleicht auch beim Hochladen verwendet? Denn dann ließe sich das alles deutlich vereinfachen: Über den Filter wp_image_editors können die vorhandenen Klassen durch eigene ersetzt werden. Beispielsweise der EWWW Image Optimizer macht dies. Die elegante Methode müsste also sein, eine Ableitung zu schreiben, die zwar die Größen berechnet, aber nicht die Bilder erzeugt.

Noch stecke ich in der Fertigstellung der Version 1.7, die unter anderem CDN-Unterstützung beinhaltet. Aber für Version 1.8 plane ich die Überarbeitung des Dynamic Image Resizing.


Kommentare sind geschlossen.