Beim Versuch, ein Bild mithilfe von JavaScript und einem Canvas-Element zu verkleinern, wird Folgendes angezeigt Das Bild weist häufig unerwünschte Artefakte und verschwommene Pixel auf. Obwohl es einen Prototyp gibt, der den gleichen Code wie eine seriöse Bildbearbeitungs-Website verwendet, sind die Ergebnisse durchweg schlecht.
Herkömmliche Resampling-Techniken, die von Browsern verwendet werden, und bestehende Canvas-Methoden liefern keine hohen Ergebnisse Hochwertige Miniaturansichten. Um diesen Mangel zu beheben, führen wir einen in JavaScript implementierten Lanczos-basierten Resampling-Algorithmus ein. Diese Methode filtert die Bilddaten mithilfe eines konfigurierbaren Kernels, was zu einer optisch ansprechenden Verkleinerung führt.
Die Thumbnailer-Klasse kapselt den Lanczos-basierten Resampling-Prozess. Es wird mit einem Canvas-Element, dem Originalbild und der gewünschten verkleinerten Breite initialisiert.
Hinter den Kulissen führt die Methode „process1“ einen zeilenweisen Scan des Quellbilds durch und berechnet gewichtete Durchschnittswerte für jedes Zielpixel . Die Methode „process2“ rekonstruiert das neu abgetastete Bild und rendert es auf dem Canvas-Element.
Der Schlüssel zu dieser Implementierung liegt in der Funktion lanczosCreate, die einen Lanczos-Kernel zum Filtern generiert. Diese Funktion kann durch Anpassen der Anzahl der Kernel-Lappen optimiert werden, was einen Kompromiss zwischen Leistung und Bildqualität bietet.
Um das verbesserte Resampling zu demonstrieren, ein modifizierter Abschnitt des Originals Code wird bereitgestellt:
img.onload = function() { var canvas = document.createElement("canvas"); new thumbnailer(canvas, img, 188, 3); // Adjust kernel lobes as desired document.body.appendChild(canvas); };
Obwohl dies eine hervorragende Bildqualität bietet Die auf JavaScript basierende Resampling-Technik ist rechenintensiv und kann auf langsameren Geräten zu Leistungsproblemen führen. Darüber hinaus ist unklar, ob die Implementierung durch die GPL2-Lizenz abgedeckt ist, da sie Konzepte vom Anrieff Gallery Generator übernimmt.
Das obige ist der detaillierte Inhalt vonWie kann Lanczos Resampling die Größenänderung von HTML5-Canvas-Bildern verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!