Javascript如何从缓冲区对图像数据进行二值化

Javascript如何从缓冲区对图像数据进行二值化,javascript,electron,buffer,Javascript,Electron,Buffer,我正在创建一个Electron应用程序,我已将图像中的数据缓冲到以下格式: [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 88, 0, 0, 0, 120, 8, 2, 0, 0, 0, 161, 55, 27, 148, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 11, 18, 0, 0, 11, 18, 1, 210, 221, 126, 252, 0, 0, 32

我正在创建一个Electron应用程序,我已将图像中的数据缓冲到以下格式:

[137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 88, 0, 0, 0, 120, 8, 2, 0, 0, 0, 161, 55, 27, 148, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 11, 18, 0, 0, 11, 18, 1, 210, 221, 126, 252, 0, 0, 32, 0, 73, 68, 65, 84, 120, 218, 236, 189, 7, 152, 84, 69, 214, 255, 191, 207, 255, 217, 223, 238, 42, 97, 102, 58, 231, 112, 67, 231, 137, 12, 57, 231, 201, 211, 211, 211, 57, 119, 79, 102, 72, 2, …]
我需要将其转换为黑白,但每当我通过下面的二进制函数运行它时,就会出现类似
TypeError:cannotread属性'mime'为null
的错误

我正在使用此代码转换为黑白:

function binarize(data) {
  var RED_INTENCITY_COEF = 0.2126;
  var GREEN_INTENCITY_COEF = 0.7152;
  var BLUE_INTENCITY_COEF = 0.0722;

  for(var i = 0; i < data.length; i += 4) {
    var brightness = RED_INTENCITY_COEF * data[i] + GREEN_INTENCITY_COEF * data[i + 1] + BLUE_INTENCITY_COEF * data[i + 2];
    // red
    data[i] = brightness;
    // green
    data[i + 1] = brightness;
    // blue
    data[i + 2] = brightness;
  }
  return data;
}

data = binarize(data)
函数二值化(数据){
var RED_INTENCITY_COEF=0.2126;
var GREEN\u Intensity\u COEF=0.7152;
var BLUE_Intensity_COEF=0.0722;
对于(变量i=0;i

图像仅在缓冲区中,不需要显示在任何位置。图像是从png文件中提取的。

@mplungjan不确定您的意思。这是我在使用二进制函数更改数据时收到的错误消息。因此,我们缺少了
data=someProcessCreatingSomeObject(您的数组)
@mplungjan…这是什么意思。。。。?开始觉得这是《波士顿法律》那一集的开场白,丹尼一直在问“你是什么意思”。难道我们没有
data=binarize(data)
。。。。。?请澄清你指的是什么…@mplungjan我在顶部发布的数据代码是二值化之前的图像数据数组。处理这个数组没有问题,不会抛出任何mime错误消息,因此必须包含所需的任何内容。在完成二进制化函数后,它抛出mime错误。@mplungjan不确定您的意思。这是我在使用二进制函数更改数据时收到的错误消息。因此,我们缺少了
data=someProcessCreatingSomeObject(您的数组)
@mplungjan…这是什么意思。。。。?开始觉得这是《波士顿法律》那一集的开场白,丹尼一直在问“你是什么意思”。难道我们没有
data=binarize(data)
。。。。。?请澄清你指的是什么…@mplungjan我在顶部发布的数据代码是二值化之前的图像数据数组。处理这个数组没有问题,不会抛出任何mime错误消息,因此必须包含所需的任何内容。经过二进制化函数后,它抛出mime错误。