Shan
Shan

Reputation: 310

How to convert image into Buffer

I want to convert image Mat into a buffer

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
}

I want to convert it to like this

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>
}

I try various methods but not success.

some example

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

Upvotes: 5

Views: 31522

Answers (2)

Shan
Shan

Reputation: 310

Using NodeJs

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

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

Upvotes: 3

Shan
Shan

Reputation: 310

Using opencv4nodejs

image to buffer =>

 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');

buffer to image =>

const image = cv.imdecode(buffer);

Upvotes: 1

Related Questions