imagor-Thumbnails: feste WxH-Box statt reiner Breiten-Skalierung bei keepAspectRatio=true #50

Closed
opened 2026-08-09 19:20:16 +00:00 by csaeum · 0 comments
Owner

Symptom

Bild f0/01/0b/1780053848 (Hochformat, Seitenverhältnis 0,558) wird sowohl auf der
Produktseite als auch in der Kategorie-Kachel ("Handwerk & Ladenbau") falsch dargestellt,
sobald das Plugin aktiv ist:

  • Plugin deaktiviert: data-srcset nutzt Shopwares eigenen Remote-Thumbnail-Fallback-Pattern
    aus der z-shopware.yaml ({mediaUrl}/{mediaPath}?width={width}&ts={mediaUpdatedAt}) —
    reine Breiten-Skalierung, kein {height} im Pattern, Seitenverhältnis bleibt automatisch
    erhalten, kein Crop, kein Weißraum. Sieht korrekt aus.
  • Plugin aktiv: RemoteThumbnailUrlSubscriber fängt dasselbe Event ab und ersetzt es durch
    ImagorUrlBuilder::build(). Der baut aber immer eine feste WxH-Box
    (fit-in/330x185, fit-in/650x365 — Seitenverhältnis 1,78), obwohl Breite und Höhe hier
    nur nominelle Werte aus der Ordner-Thumbnail-Konfiguration sind. Bei diesem Hochformat-Bild
    führt das je nach keepAspectRatio-Wert entweder zu einem stark beschnittenen
    Ergebnis (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ür keepAspectRatio=true-Ordner eine fit-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ür keepAspectRatio=true-Ordner statt fit-in/WxH eine reine
Breiten-Skalierung an imagor übergeben (Wx0 — Höhe automatisch, Seitenverhältnis bleibt
erhalten, keine Box-Begrenzung). Für keepAspectRatio=false-Ordner bleibt der harte
WxH-Zuschnitt unverändert (siehe Issue #47, andere Ordner-Situation dort weiterhin korrekt).

## Symptom Bild `f0/01/0b/1780053848` (Hochformat, Seitenverhältnis 0,558) wird sowohl auf der Produktseite als auch in der Kategorie-Kachel ("Handwerk & Ladenbau") falsch dargestellt, sobald das Plugin aktiv ist: - **Plugin deaktiviert:** `data-srcset` nutzt Shopwares eigenen Remote-Thumbnail-Fallback-Pattern aus der `z-shopware.yaml` (`{mediaUrl}/{mediaPath}?width={width}&ts={mediaUpdatedAt}`) — reine Breiten-Skalierung, kein `{height}` im Pattern, Seitenverhältnis bleibt automatisch erhalten, kein Crop, kein Weißraum. Sieht korrekt aus. - **Plugin aktiv:** `RemoteThumbnailUrlSubscriber` fängt dasselbe Event ab und ersetzt es durch `ImagorUrlBuilder::build()`. Der baut aber immer eine feste `WxH`-Box (`fit-in/330x185`, `fit-in/650x365` — Seitenverhältnis 1,78), obwohl Breite und Höhe hier nur nominelle Werte aus der Ordner-Thumbnail-Konfiguration sind. Bei diesem Hochformat-Bild führt das je nach `keepAspectRatio`-Wert entweder zu einem stark beschnittenen Ergebnis (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ür `keepAspectRatio=true`-Ordner eine `fit-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ür `keepAspectRatio=true`-Ordner statt `fit-in/WxH` eine reine Breiten-Skalierung an imagor übergeben (`Wx0` — Höhe automatisch, Seitenverhältnis bleibt erhalten, keine Box-Begrenzung). Für `keepAspectRatio=false`-Ordner bleibt der harte `WxH`-Zuschnitt unverändert (siehe Issue #47, andere Ordner-Situation dort weiterhin korrekt).
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SW-Plugins/wsc_swplugin_aiseotools#50
No description provided.