NodeJS base64 image encoding not quite working

巧了我就是萌 提交于 2020-01-17 01:48:05

问题


I am using API to get user's profile photo from O365 cloud. Based on the doc it says response contains *The binary data of the requested photo. *

I would like to use this image to be displayed by Data URI format. Ex:-

"data:image/png;base64,iVBORw0KGgoAAA ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 //8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU 5ErkJggg=="

where everything after data:image/png;base64,.... is image data in Base64.

I unable to get Base64 encoding working for the image data I am getting from API. Not sure if I am consuming raw binary img data correctly and converting it correctly to Base64.

To verify: I upload my URI data here to online editor & it never parses my data/image. Instead if I upload an image here & to get Base64 data then upload URI in 1st editor it does display correctly. So I am guessing by Base64 conversation isn't correct.

CODE in nodejs:-

let base64ImgTry1 = Buffer.from('binary-data-from-api').toString('base64')

//OR

var base64ImgTry2 = new Buffer('binary-data-from-api','binary').toString('base64');

let imgURI_1 = 'data:image/png;base64,' +base64ImgTry1
let imgURI_2 = 'data:image/png;base64,' +base64ImgTry1

none of these imgURI_1 , imgURI_2 works. Not sure if I am going wrong consuming binary-data-from-api.

I also tried this NPM library https://www.npmjs.com/package/image-data-uri

in which i used this method -> encode(data, mediaType) where data was direct response from API.

https://www.site24x7.com/tools/datauri-to-image.html

来源:https://stackoverflow.com/questions/53331408/nodejs-base64-image-encoding-not-quite-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!