相反,如何将二进制数据转换回图像?因为后端保存的图像数据都是以二进制形式存储的。
试试这个。
var fs = require("fs");
fs.readFile('image.jpg', function(err, data) {
if (err) throw err;
// Encode to base64
var encodedImage = new Buffer(data, 'binary').toString('base64');
// Decode from base64
var decodedImage = new Buffer(encodedImage, 'base64').toString('binary');
});
希望对您有用。
您可以使用 fs.createReadStream 而不是 Buffer 来完成此操作,Buffer 是已弃用的方法。 有关差异的更多信息,请访问 https://medium.com/tensult/stream-and-buffer-concepts-in-node-js-87d565e151a0
如果你想要一个读取文件的解决方案(显然你也可以读取图像)并将其转换为二进制,我在 NodeJS 中编写了一段小代码,看看希望它能帮助你。这都是关于将文件读取为二进制文件,但您当然可以将字符串转换为数组或字节数组。如果您在这里遇到困难,请在下面的评论中告诉我。
这是一个简单而强大的代码片段,您可以尝试。
params format:
getBinary({
path : '<file_relative_path>',
padlength: '<prepending_padding_length>', (Default: 4)
debug: false, (Default: true)
limit: 10 (Default: Full_File_Length)
putSpacing: Boolean (Default: false)
})
Params Description:
1. path: Specifies the relative file path, to be read.
2. padlength: After reading the file, it reads object as number
(ex: hex(f): 1111, hex(0): 0), so if you need a
uniform length binary string then you will need to
fill the strings. as hex(0): 0000 when padlength is 4.
3. limit: limits the read buffer to render.
4. putSpacing: if true it puts a space after each padlength.
or
getBinary('<file_relative_path>');