ArrayBuffer回転Base 64

1235 ワード

直接先に方法を貼っておきます(Stack Overflow参照)
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オブジェクトは、汎用的で固定長のバイナリデータバッファを表すために使用されます.
    ただし、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方法をカプセル化することができる(カプセル化後、中国語と特殊記号を受信することができる).
    function utoa(str) {
        return window.btoa(unescape(encodeURIComponent(str)));
    }
    

  • 上記のタイプを生成する方法は何ですか?

  • HTMLCanvasElement.toDataURL()は、base 64符号化を含む文字列
  • を返す.
  • CanvasRenderingContext2D.getImageData()は、UIT 8 ClampedArrayからのImageDataタイプを返しますが、UIT 8 ClampedArrayは前述のTypedArrayの
  • です.