问题描述
我使用 How to return cv::Mat in nodejs addon 作为参考在 v8 中编写了一个节点 js 插件。一旦我将接收到的缓冲区写入节点 js 中的 png 文件,我仍然会得到一个损坏的图像。我的原始图像是 png,这是我的代码
SEQUENCE
Node js 代码片段
void myAddOnFunction(const v8::FunctionCallbackInfo<v8::Value>& args)
{
Mat image = cv::imread(image_path);
//Do some processing and return an Opencv Mat
Mat image_result = processFunction();
unsigned int image_size = image_result.total() * image_result.elemSize();
char* image_char = reinterpret_cast<char*>(image_crop.data);
//Nan::MaybeLocal<v8::Object> imageBuffer = Nan::copyBuffer(image_char,image_size);
v8::MaybeLocal<v8::Object> imageBuffer = node::Buffer::copy(isolate,image_char,image_size);
args.GetReturnValue().Set(imageBuffer.ToLocalChecked());
}
let result = addon.myAddOnFunction("Image_Path");
const out_file = path.basename("Output.png");
fs.writeFileSync(out_file,new Buffer.from(result,"binary"));
我哪里出错了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)