如何将图像转换为缓冲区

5

我想将图像Mat转换为缓冲区

console.log(image);

output:

Mat {
  step: 960,
  elemSize: 3,
  sizes: [ 160, 320 ],
  empty: 0,
  depth: 0,
  dims: 2,
  channels: 3,
  type: 16,
  cols: 320,
  rows: 160
}

我想将它转换为这样
Promise {
  <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 08 06 06 07 06 05 08 07 07 07 09 09 08 0a 0c 14 0d 0c 0b 0b 0c 19 12 13 0f ... 14164 more bytes>
}

我尝试了各种方法,但都没有成功。

一些例子

var processImageBuffer = new ArrayBuffer(image);  // convert image to buffer array

var blob = new Blob(image);                       // convert buffer array to promise array

var processImageBuffer = blob.arrayBuffer();

var processImageBuffer = arrayBufferToBuffer(processImageBuffer);  // convert promise array to buffer
2个回答

3

使用Node.js

const promise = fs.promises.readFile(path.join('path to image file'));

Promise.resolve(promise).then(function(buffer){
     console.log(buffer);
});

1
使用 opencv4nodejs
图像转换为缓冲区 =>
 const image = cv.imread('image path');

 const str = image.toString('base64');

 const buffer = Buffer.from(str,'base64');

or

 const str =  cv.imencode('.jpg', image).toString('base64');

 const buffer = Buffer.from(str, 'base64');

缓冲区转图像 =>

const image = cv.imdecode(buffer);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接