imagor-Thumbnails: feste WxH-Box statt reiner Breiten-Skalierung bei keepAspectRatio=true #50
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Bild
f0/01/0b/1780053848(Hochformat, Seitenverhältnis 0,558) wird sowohl auf derProduktseite als auch in der Kategorie-Kachel ("Handwerk & Ladenbau") falsch dargestellt,
sobald das Plugin aktiv ist:
data-srcsetnutzt Shopwares eigenen Remote-Thumbnail-Fallback-Patternaus der
z-shopware.yaml({mediaUrl}/{mediaPath}?width={width}&ts={mediaUpdatedAt}) —reine Breiten-Skalierung, kein
{height}im Pattern, Seitenverhältnis bleibt automatischerhalten, kein Crop, kein Weißraum. Sieht korrekt aus.
RemoteThumbnailUrlSubscriberfängt dasselbe Event ab und ersetzt es durchImagorUrlBuilder::build(). Der baut aber immer eine festeWxH-Box(
fit-in/330x185,fit-in/650x365— Seitenverhältnis 1,78), obwohl Breite und Höhe hiernur nominelle Werte aus der Ordner-Thumbnail-Konfiguration sind. Bei diesem Hochformat-Bild
führt das je nach
keepAspectRatio-Wert entweder zu einem stark beschnittenenErgebnis (falscher Bildausschnitt, siehe Issue #44) oder — mit
fit-in— zu einem winzigen,auf ~103x185px herunterskalierten Bild in einer viel größeren Box (sichtbarer Weißraum).
Root Cause
ImagorUrlBuilder::build()erzwingt fürkeepAspectRatio=true-Ordner einefit-in/WxH-Box(beide Dimensionen begrenzt). Das entspricht nicht dem, was Shopwares eigener
Fallback-Pattern (und damit die Referenz für "richtig") tut: reine Breiten-Skalierung ohne
Höhen-Zwang. Sobald Breite und Höhe eines Bildes stark von der konfigurierten
Ordner-Thumbnail-Größe abweichen (hier: Hochformat-Foto in einem für Querformat-Bilder
konfigurierten Ordner), führt der Box-Zwang zu falscher Darstellung — unabhängig davon, ob
zusätzlich zugeschnitten oder eingepasst wird.
Fix
ImagorUrlBuilder::build(): FürkeepAspectRatio=true-Ordner stattfit-in/WxHeine reineBreiten-Skalierung an imagor übergeben (
Wx0— Höhe automatisch, Seitenverhältnis bleibterhalten, keine Box-Begrenzung). Für
keepAspectRatio=false-Ordner bleibt der harteWxH-Zuschnitt unverändert (siehe Issue #47, andere Ordner-Situation dort weiterhin korrekt).