ここから、文字列を readAsArrayBuffer() に渡してローカル ファイルをロードしたいように見えますが、これは blob またはファイル オブジェクトを想定しています。このファイルは、ブラウザのファイル ダイアログからロードできます。手順は次のとおりです。ファイルを選択し、fileReader asArrayBuffer または asDataURL または asBinaryString を介してファイルをロードし、コードでデータを操作または使用します。
この例では、ローカル ファイルから画像を作成し、それをキャンバスに描画します (正しい MIME タイプ "image.*" の場合)。
適用するエンコード/デコードの種類がわかりません。ただし、データのカスタム操作には、ArrayBuffers と TypeArrays を使用することをお勧めします。
FileReader.readAsDataURL() の例: http://jsfiddle.net/uvmD7/
<body>
<canvas id="cvs" width="200" height="200"></canvas>
<input type="file" id="files" name="files[]" multiple />
</body>
そしてスクリプト:
document.getElementById('files').addEventListener('change', handleFileSelect, false);
var fr = new FileReader();
function handleFileSelect(evt) {
var files = evt.target.files;
fr.readAsDataURL(files[0]);
};
fr.onload = function(evt) {
// do sth with it
var data = evt.target.result; //fr.result
img = new Image();
img.src = data;
// draw after load
img.onload = function() {
var c=document.getElementById("cvs");
var ctx=c.getContext("2d");
ctx.drawImage(img,0,0,200,180);
};
};