Vielleicht ist es spät, oder vielleicht ist es der Grund , aber ich habe gerade die Dokumente für ArrayBuffer gelesen und kann mir keine einzige Sache vorstellen, für die es wirklich nützlich wäre.
Kann mich jemand aufklären?
Gibt es irgendwelche Verwendungszwecke, an die sich jeder erinnern kann, bei denen es sich nicht um Bilder handelt?
javascript
mkoryak
quelle
quelle
getImageData
die viele Eigenschaften des gezeichneten Bildes zurückgibt, einschließlich einerbuffer
vom Typ aufgerufenenArrayBuffer
Antworten:
Grundsätzlich wird ArrayBuffer verwendet, um Binärdaten zu speichern. Dies können beispielsweise die Binärdaten eines Bildes sein.
In anderen Sprachen haben sich Puffer als sehr nützlich erwiesen. Ja, natürlich ist es wenig schwierig zu verstehen / zu verwenden als andere Datentypen.
ArrayBuffer kann verwendet werden, um Daten von JPG-Bildern (RGB-Bytes) abzurufen und daraus ein PNG zu erzeugen, indem Alpha-Bytes (dh RGBA) hinzugefügt werden.
Die Mozilla-Site hat ArrayBuffer hier nur in geringem Umfang verwendet
quelle
new Int32Array(Uint8Array.from([1,2,3,4]).buffer,0,1)
zu testen.Anders als Bilder ist es nützlich, um Netzwerkdatenpakete auf niedriger Ebene, die in Protokollen wie UDP verwendet werden, präzise zu erstellen und zu zerstören.
quelle
An
ArrayBuffer
repräsentiert Binärdaten im RAM. Sie können einArrayBuffer
zum Lesen und Schreiben entweder mit einem typisierten Array oder mit einem "öffnen"DataView
.Typisierte Arrays wie
Uint16Array
können den Puffer lesen und schreiben, indem sie ihn als ein einzelnes Array von Ganzzahlen behandeln. Sie lassen dich nicht die Endianness kontrollieren ; Es nutzt die native Endianness der Plattform. Die VerwendungUint8Array
ist nützlich, um einzelne Bytes zu steuern (dies wird nicht durch Endianness beeinflusst).DataView
ist nicht so einfach, aber es gibt Ihnen viel mehr Kontrolle. Sie haben die volle Kontrolle über Endianness, Integer-Größe und Byte-Index (z. B. können Sie an einem Index auf eine 32-Bit-Integer zugreifen, auch wenn diese nicht durch 32 Bit teilbar ist). Diese Dinge können jedes Mal ausgewählt werden, wenn Sie eine Ganzzahl mit derselben lesen und schreibenDataView
.Dies kann hilfreich sein: https://javascript.info/arraybuffer-binary-arrays
quelle