Node.js 如何在NodeJS中将image.png转换为二进制文件?

Node.js 如何在NodeJS中将image.png转换为二进制文件?,node.js,api,fs,image-conversion,azure-form-recognizer,Node.js,Api,Fs,Image Conversion,Azure Form Recognizer,我正在尝试使用Azure Forms Recognizer API,其中我必须以“[二进制PNG数据]”的形式提供正文,如前所述。 连接似乎工作正常,但我得到以下回应: {“error”:{“code”:“InvalidImage”,“innerError”:{“requestId”:“73c86dc3-51a3-48d8-853b-b6411f54c51e”},消息是:“输入数据不是有效的图像或受密码保护的。”} 我使用的是一个png,它是我的本地目录,我尝试过以多种不同的方式转换它,包括:

我正在尝试使用Azure Forms Recognizer API,其中我必须以“[二进制PNG数据]”的形式提供正文,如前所述。 连接似乎工作正常,但我得到以下回应:

{“error”:{“code”:“InvalidImage”,“innerError”:{“requestId”:“73c86dc3-51a3-48d8-853b-b6411f54c51e”},消息是:“输入数据不是有效的图像或受密码保护的。”}

我使用的是一个png,它是我的本地目录,我尝试过以多种不同的方式转换它,包括:

fs.readFile('test.png', function(err, data){
if (err) throw err;
// Encode to base64
let encodedImage = new Buffer(data, 'binary').toString('base64');
// Decode from base64
var decodedImage = new Buffer(encodedImage, 'base64').toString('binary');});

还有很多其他的。它们似乎都不起作用,我的发帖请求总是得到同样的回复

如果有人能分享如何将这个png转换成正确的格式,我将不胜感激。提前感谢您

对base 64:

const file = fs.readFileSync('/some/place/image.png')
const base64String = Buffer.from(file).toString('base64')
然后将base64String传递给Azure

如果您只需要一个BLOB作为二进制文件,您可以这样做

const file = fs.readFileSync('/some/place/image.png')
const blob = Buffer.from(file)

@TusharGupta curioustushar也试过了。不起作用。Azure表单识别器仍以相同的响应“InvalidImage”进行响应
const file = fs.readFileSync('/some/place/image.png')
const blob = Buffer.from(file)