我正在尝试使用设备驱动程序c / c ++ API制作React虹膜扫描仪应用程序,并且我使用N-API与React应用程序中的扫描仪进行通信。我的c / c ++和图像处理知识几乎不存在,但是我设法能够扫描眼睛并将图像保存在N-API包装器中。现在我想将图像发送到我的React应用程序。我已经收集到可以使用ArrayBuffer并将图像数据像这样发送到React应用程序:
callback.Call({Napi::String::New(env, "getImage"),
Napi::ArrayBuffer::New(env, &imageData, imageDataLength)});
我有一个事件侦听器,等待驱动程序发送图像(.jp2格式),但是我不知道该怎么做才能在React应用程序中显示图像。从某个地方开始,我尝试保存文件,但是只使用
const stream = () => {
const emitter = new EventEmitter();
emitter.on('getImage', imageData => {
fs.writeFile('./iris.jp2', bitmap, err => {
console.log(`Error: ${err}`);
});
});
driver.getImageFromDriver(emitter.emit.bind(emitter));
};
什么都不做。我尝试使用Blob,但是Blob的创建使应用程序冻结。
谁能告诉我如何处理从驱动程序接收的数据?
此外,如前所述,文件格式为jp2,但驱动程序可以使用其他格式。我尝试使用file-type,但打电话给
fileType(imageData);
返回'undefined',我看不到其他示例如何适用于我的情况。
即使我坚持使用jp2格式,也很高兴能够看到它是否确实是我从驱动程序获得的正确数据(也许我得到了“ undefined”,因为ByteArray不包含正确的数据,但是那我该如何正确运输呢?)