携帯電話で画像のアップロード Web ページを作成しようとしていますが、画像が大きすぎると常にメモリ不足になり、ブラウザが終了します。ここに私のコードがあります:
<input type="file" id="testFile" />
<img src="" style="position:relative;" id="uploadingImg" />
function setImage() {
var fileList = this.files;
var imageType = /image/;
for(var i = 0;i < fileList.length;i++) {
document.getElementById('uploadingImg').file = fileList[i];
var reader = new FileReader();
reader.onload = function(e) {
document.getElementById('uploadingImg').src = e.target.result;
}
reader.readAsDataURL(fileList[i]);
}
}
document.getElementById('testFile').addEventListener('change', setImage, false);
<img>
or<canvas>
要素を使用して 1 つの画像をプレビューする方法を知っている人はいますか?
となるとメモリ不足になる"readAsDataURL"
ので使わないでください。document.getElementById('uploadingImg').src = e.target.result;
base64 Url はメモリを占有しすぎて、メモリ内に 3 つまたは 4 つのコピーが多数存在するためです。
キャンバスで使用"readAsArrayBuffer"
および使用するにはどうすればよいですか? "drawImage"
または他の方法?
を使用せずにローカル ディスクで 1 つの画像をプレビューできれば、すべて問題ありません"readAsDataUrl"
。
ありがとう!