ArrayBuffer回転Base 64
1235 ワード
直接先に方法を貼っておきます(Stack Overflow参照)
ArrayBuffer
ArrayBufferオブジェクトは、汎用的で固定長のバイナリデータバッファを表すために使用されます.
ただし、ArrayBufferを直接操作することはできません.TypedArrayタイプまたはDataViewタイプに変換してから使用する必要があります. TypedArrayは簡単に言えばより詳細で、より明確なタイプのArrayBufferです. UIT 8 A rray UIT 8 A rrayはTypedArrayであり、符号なし整形配列である. Base 64は公式に紹介したくないので、これが符号化ルールであることを知っていればいいです.encode-btoa(stringToEncode)とdecode-atob(encodedData)の2つの重要な方法があります.atobが受け入れるパラメータはbase 64の符号化に違いないが、btoaが受け入れるパラメータには制限があり、以下の方法でbtoa方法をカプセル化することができる(カプセル化後、中国語と特殊記号を受信することができる).
HTMLCanvasElement.toDataURL()は、base 64符号化を含む文字列 を返す. CanvasRenderingContext2D.getImageData()は、UIT 8 ClampedArrayからのImageDataタイプを返しますが、UIT 8 ClampedArrayは前述のTypedArrayの です.
function transformArrayBufferToBase64 (buffer) {
var binary = '';
var bytes = new Uint8Array(buffer);
for (var len = bytes.byteLength, i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
次に、方法で使用されるいくつかのタイプについて説明する(MDN参照)
ArrayBufferオブジェクトは、汎用的で固定長のバイナリデータバッファを表すために使用されます.
ただし、ArrayBufferを直接操作することはできません.TypedArrayタイプまたはDataViewタイプに変換してから使用する必要があります.
function utoa(str) {
return window.btoa(unescape(encodeURIComponent(str)));
}