我正在使用来自 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data的代码
var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response; // Note: not oReq.responseText
if (arrayBuffer) {
var byteArray = new Uint8Array(arrayBuffer);
for (var i = 0; i < byteArray.byteLength; i++) {
// do something with each byte in the array
}
}
};
oReq.send(null);
我正在使用它下载一个 png 文件,然后我想在 Canvas 元素中显示该文件。我意识到有更简单的方法可以做到这一点,但我需要能够操作像素,所以我真的很想将像素数据放在 TypedArray 中,我也尝试使用常规 DOM Image 对象加载它,将其绘制到画布并使用 getImageData() 但它太慢(它是一个大图像) - 所以现在我正在尝试这种方法,我从负载中得到的是我假设是压缩数据,所以我的问题是 - 有没有快速的方法解压缩/膨胀此数据以获取图像像素数据,还是我尝试这个完全错误?