Thumbnail Generierung gelbstich im Weiss

Hi, in einem neuen Shop lade die Artikelbilder in 800x800px hoch. Der Grund für die geringe Auflösung ist der Zoom auf der Detailseite, der unbenutzbar ist wenn das Originalbild zu hoch aufgelöst ist. Die zu generierenden Thumbnails sind im Original mit 200x200, 600x600 und 1280x1280 vorhanden. Wenn ich nun in der Einkaufswelt einen Artikel hinterlege, dann wählt er hierzu für ein ca 470x470 großes EKW-Feld aus dem “Picture srcset” das nächsthöhere 600er Thumbnail und staucht es. Soweit ist das Verhalten völlig richtig. Wenn man den Apple-Bildschirm (oder einen guten Bildschirm) schräg hält sieht man, dass ein weisser Hintergrund aus einem Bild nicht 100% weiss ist und ein gelbliches Muster aufzeigt. Es ist #fefefe. Offenbar kommt es bei der Thumbnailgenerierung zu einem “Fehler”. Erst spekulierte ich auf das Ausgangsmaterial PNG doch auch bei JPG kam es dazu, dann auf die Thumbnail JPG-Qualität, doch auch die hatte keinen Einfluss auf den Gelbstich und zum Schluss erinnerte ich mich noch an frühe DVD-Rips bei denen ich mit Divisor 16 oder 8 und ganzen Zahlen als Ergebnis resized um klare Bilder zu erhalten und den Prozessor nicht zu belasten wenn ich mich recht erinnere und das ist jetzt 10 Jahre her. Kann es daran liegen? Ich habe jetzt das 600er Thumbnail durch ein 400er  und ein 800er ersetzt, sollte es aber damit zu tun haben, wäre es gute wenn man eine Logik hinterlegen könnte welches den “nächstbesten” Pixel wählt. Zunächst wäre ich dankbar wenn jemand sich damit schonmal beschäftigt hat und das erklären könnte. THX und Gruss.

PS. ich weiss dass #fefefe nicht gelb ist, wenn man den Bildschirm schräg betrachtet ist es aber gelblich ;-)

Hi,

suche in den Grundeinstellungen mal nach “Rauchschfilter”. Das ist ein Bug in der GD-Library, kommt also nicht aus Shopware direkt. Wenn du die Option aktivierst, versucht Shopware die “defekten” Pixel zu korrigieren - dafür dauert die Generierung der Thumbs dann aber länger.

Daniel

Mhh, eine Frage dazu, überschreibt man bei der Thumbnail-Neugenerierung alte Thumbnails wirklich komplett neu, weil die Pfad und Dateiname pro Thumbnailgröße gleich bleibt auch wenn man die Thumbnails zwischenzeitlich gelöscht hat? Falls es beim drücken auf “Thumbnail generieren”  wirklich neu ist, dann hat das mit dem Rauschfilter nicht funktioniert. Falls nein, wie löscht man die alten Thumbnails richtig? DB- und Fileebene?

Thema Zeit: Für 3x3Thumbnails braucht der “lahme” RootServer ca.14 Sekunden. Für ein anderes Projekt bei dem ich imagemagick mit Commandozeile resize dauert so ein Prozess ca 3 Sekunden. Weisst du was bei GD oder Shopware so viel Zeit frisst?

THX und Gruss

Hi,

beim Neugenerieren werden existierende Thumbnails übersprungen, du kannst die Neugenerierung wie folgt erzwingen:

sw:thumbnail:generate --force

Dann sollten auch existente Dateien überschrieben werden. 

Zu den Zeiten kann ich wenig sagen - wir haben gerade wegen der GD-Problematik auch mit Imagick als Ersatz experimentiert - das war aber tendenziell sogar eher langsamer im Schnitt, soweit ich mich erinnere. Prinzipiell könnte man sich aber auch einen Imagick-Thumbnail-Adapter schreiben und den via Plugin ins System bringen.

Das „fefefe“-Reparieren ist relativ „teuer“, weil wir im Wesentlichen jeden Pixel des Bildes betrachten und ggf. neu schreiben, vgl. \Shopware\Components\Thumbnail\Generator\Basic::fixGdImageBlur. Einen (relativ alten) PHP-Bug-Report gibt es wohl auch dazu: PHP :: Bug #41820 :: Color noise in resized image when using IMAGECOPYRESAMPLED

Daniel

 

 

1 „Gefällt mir“