https://www.zhihu.com/question/30692677/answer/49141763
twitter的图片上传逻辑:
~~~
function convertCanvasToBlob(canvas) {
var format = "image/jpeg";
var base64 = canvas.toDataURL(format);
var code = window.atob(base64.split(",")[1]);
var aBuffer = new window.ArrayBuffer(code.length);
var uBuffer = new window.Uint8Array(aBuffer);
for(var i = 0; i < code.length; i++){
uBuffer[i] = code.charCodeAt(i);
}
var Builder = window.WebKitBlobBuilder || window.MozBlobBuilder;
if(Builder){
var builder = new Builder;
builder.append(buffer);
return builder.getBlob(format);
} else {
return new window.Blob([ buffer ], {type: format});
}
}
~~~