在node.js中:如何将jpg图像转换为二进制数据?

问题描述 投票:0回答:3

相反,如何将二进制数据转换回图像?因为后端保存的图像数据都是以二进制形式存储的。

node.js image binaryfiles
3个回答
15
投票

试试这个。

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

希望对您有用。


1
投票

您可以使用 fs.createReadStream 而不是 Buffer 来完成此操作,Buffer 是已弃用的方法。 有关差异的更多信息,请访问 https://medium.com/tensult/stream-and-buffer-concepts-in-node-js-87d565e151a0


1
投票

如果你想要一个读取文件的解决方案(显然你也可以读取图像)并将其转换为二进制,我在 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>');

在此处获取:https://stackstoday.com/image-to-binary-using-nodejs/

© www.soinside.com 2019 - 2024. All rights reserved.