我正在使用API从O365云中获取用户的个人资料照片。根据文档显示响应包含 *所请求照片的二进制数据。 *
我想使用此图像以Data URI格式显示。例如:-
“ data:image / png; base64,iVBORw0KGgoAAA ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 // 8 / w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU 5ErkJggg ==“
data:image / png; base64,....之后的所有内容都是Base64中的图像数据。
我无法使Base64编码适用于从API获得的图像数据。不知道我是否正确使用了原始二进制img数据并将其正确转换为Base64。
要验证: 我在这里将URI数据上传到在线编辑器,并且它从不解析我的数据/图像。相反,如果我上载图像here并获取Base64数据,然后在第一个编辑器中上载URI,则它会正确显示。所以我猜测通过Base64对话是不正确的。
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
这些imgURI_1和imgURI_2都不起作用。不确定使用API的二进制数据是否出错。
我也尝试了这个NPM库https://www.npmjs.com/package/image-data-uri
在其中我使用了此方法-> encode(data,mediaType),其中数据是来自API的直接响应。