JavaScript:将图像blob转换为浮点数组

JavaScript:将图像blob转换为浮点数组,javascript,image,image-processing,blob,Javascript,Image,Image Processing,Blob,我正在尝试将一个灰度PNG blob转换为一个浮点数组,这样每个浮点代表PNG中每个像素的亮度,类似于numpy处理图像的方式 我目前的做法如下: var fileReader = new FileReader(); fileReader.onload = function(e) { var byteString = e.target.result; byteString = byteString.split(',')[1]; var arrayBuffer = new

我正在尝试将一个灰度PNG blob转换为一个浮点数组,这样每个浮点代表PNG中每个像素的亮度,类似于numpy处理图像的方式

我目前的做法如下:

var fileReader = new FileReader();
fileReader.onload = function(e) {
    var byteString = e.target.result;
    byteString = byteString.split(',')[1];
    var arrayBuffer = new ArrayBuffer(byteString.length);
    var floatArray = [];

    for (var i=0; i < byteString.length; i++) {
        floatArray[i] = byteString.charCodeAt(i)/255;
    }
fileReader.readAsDataURL(blob);
var fileReader=newfilereader();
fileReader.onload=函数(e){
var byteString=e.target.result;
byteString=byteString.split(',)[1];
var arrayBuffer=新的arrayBuffer(byteString.length);
var floatArray=[];
for(var i=0;i
但最终返回的数组比图像小得多,并且填充了看似随机的浮动


我想我误解了数据实际上是如何存储在blob中的,因此转换不能正常工作

newfilereader()中什么是
fileReader
?有一个
文件阅读器
,是打字错误还是其他什么?哦,是的,我的错,我在转录时只是一个打字错误。我查看了一个png数据URL示例,结果中有类似“\u0089PNG”的内容(可能是png文件格式头的内容。编辑:,似乎就是这样)。另外,png不支持无损压缩吗?我当然不确定,但感觉您正在读取的数据根本不是您期望的格式。如果您没有更好的选择,可以将其打印到屏幕外的画布上,然后使用