Heim >Web-Frontend >js-Tutorial >Wie berechnet man die durchschnittliche Farbe eines Bildes mit JavaScript?
Durchschnittliche Bildfarbe in JavaScript ermitteln
Problem:
Ist es möglich, die Farbe zu bestimmen? die durchschnittliche Farbe eines Bildes mithilfe von JavaScript?
Lösung:
Auch wenn dies möglicherweise nicht sofort ersichtlich ist, können Sie tatsächlich die durchschnittliche Farbe eines Bildes mithilfe von JavaScript berechnen. Der Schlüssel dazu liegt in der Nutzung der HTML5-Funktion
Um die durchschnittliche Farbe aus einem Bild zu extrahieren, führen Sie die folgenden Schritte aus:
Hier ist eine Beispielfunktion, die den beschriebenen Algorithmus implementiert:
<code class="javascript">function getAverageRGB(imgEl) { var blockSize = 5, // only visit every 5 pixels defaultRGB = { r: 0, g: 0, b: 0 }, // for non-supporting envs canvas = document.createElement('canvas'), context = canvas.getContext && canvas.getContext('2d'), data, width, height, i = -4, length, rgb = { r: 0, g: 0, b: 0 }, count = 0; if (!context) { return defaultRGB; } height = canvas.height = imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height; width = canvas.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width; context.drawImage(imgEl, 0, 0); try { data = context.getImageData(0, 0, width, height); } catch(e) { /* security error, img on diff domain */ return defaultRGB; } length = data.data.length; while ((i += blockSize * 4) <p>Diese Funktion verwendet ein Bildelement als Eingabe und gibt ein Objekt zurück, das die durchschnittlichen Rot-, Grün- und Blauwerte als Ganzzahlen enthält.</p></code>
Das obige ist der detaillierte Inhalt vonWie berechnet man die durchschnittliche Farbe eines Bildes mit JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!