Was ist der Unterschied zwischen Uint8Array
und Uint8ClampedArray
in JavaScript? Ich verstehe, dass Uint8ClampedArray
mit Leinwand für Pixel-Manipulationen verwendet wird. Warum ist das und was ist der Vorteil?Unterschied zwischen Uint8Array und Uint8ClampedArray
42
A
Antwort
59
Betrachtet man die Beispiele für Uint8ClampedArray und Uint8Array, sieht es so aus, als ob der Unterschied darin besteht, wie Werte behandelt werden, wenn sie zugewiesen werden.
Wenn Sie versuchen, ein Element auf ein geklammertes Array auf einen Wert außerhalb des Bereichs 0-255
zu setzen, wird als Standardwert 0 oder 255 verwendet (abhängig davon, ob der Wert kleiner oder größer ist). Ein normales Uint8Array
Array nimmt nur die ersten 8 Bit des Wertes.
Beispiele:
var x = new Uint8ClampedArray([17, -45.3]);
console.log(x[0]); // 17
console.log(x[1]); // 0
console.log(x.length); // 2
var x = new Uint8Array([17, -45.3]);
console.log(x[0]); // 17
console.log(x[1]); // 211
console.log(x.length); // 2
Verwandte Themen
- 1. Wie benutze ich Uint8Array, Uint16Array, Uin32Array
- 2. Unterschied zwischen Vorzeichen & und *?
- 3. VBA: Unterschied zwischen & und +
- 4. Unterschied zwischen "**/* /" und "** /"?
- 5. Unterschied zwischen $ # und $ {# @}
- 6. Unterschied zwischen = und: =
- 7. Unterschied zwischen '#', '%' und '$'
- 8. MySQL: Unterschied zwischen ', `,' und '
- 9. C++ Unterschied zwischen '//' und '///'
- 10. Unterschied zwischen String.Empty und ""
- 11. Unterschied zwischen `% in%` und `==`
- 12. Unterschied zwischen numpy.logical_and und &
- 13. Unterschied zwischen. und #
- 14. Unterschied zwischen // und http: //
- 15. Node.js Canvas-Implementierung mit Uint8ClampedArray
- 16. Uint8ClampedArray in reguläres Array konvertieren
- 17. Unterschied zwischen -Wconversion zwischen gcc und g ++
- 18. getRandomValues () im Knoten: "expected Uint8Array"
- 19. Unterschied zwischen Wörterbuch und Hashtable
- 20. Unterschied zwischen FetchMode und FetchType
- 21. Unterschied zwischen Application_Start und Application_OnStart
- 22. Unterschied zwischen BOOST_CHECK_CLOSE und BOOST_CHECK_CLOSE_FRACTION?
- 23. Unterschied zwischen Suche und Index
- 24. Unterschied zwischen AJAX und Senden
- 25. Unterschied zwischen Spekulation und Vorhersage
- 26. Unterschied zwischen inproc und outproc
- 27. Unterschied zwischen Clojure und Clojurescript?
- 28. Unterschied zwischen NSArray und NSMutableArray
- 29. Unterschied zwischen libcurl und libsoup
- 30. Unterschied zwischen DirectoryCatalog und AssemblyCatalog
Beachten Sie auch, dass 'Uint8Array ([0,9])' ist '[0]', aber 'Uint8ClampedArray ([0,9])' ist '[1]', dh. In der geklammerten Version wird die Rundung verwendet, in der Grundversion wird der Boden verwendet. –
Das OP erwähnt dies wurde für Pixelwerte in der Leinwand verwendet, ist dies eine Abkürzung für gesättigte Arithmetik? – Indolering
@Felix, also 'Uint8Array' ist performanter, weil keine Grenzen überprüft werden müssen? – Pacerier