Array of bytes in Node.js image

I have a long array of bytes with numbers from 0 to 255, and I know that this is an image, so how can I save it as a file? I tried a lot of things, but did not have time. The image is created but not opened because it is damaged.

.Js file

function saveImage(filename, data){ //Data = [1,6,2,23,255,etc] var wstream = fs.createWriteStream(ARTWORK_PATH+filename); for (var i = 0; i < data.length; i++) { wstream.write(data[i].toString('base64')); } wstream.end(); } 
+1
source share
2 answers

Why use base64 encoding? If your image data in the data parameter is binary, you can write it.

 fs.writeFile(filename, data, "binary", function(){...}); 
+2
source

I decided to do it!

It was as simple as using a buffer ...

 function saveImage(filename, data){ var myBuffer = new Buffer(data.length); for (var i = 0; i < data.length; i++) { myBuffer[i] = data[i]; } fs.writeFile(ARTWORK_PATH+filename, myBuffer, function(err) { if(err) { console.log(err); } else { console.log("The file was saved!"); } }); } saveImage("image.jpg", [0,43,255,etc]); 
+2
source

Source: https://habr.com/ru/post/984036/


All Articles