Node.js中axios如何由一个图片的URL得到图片data的Base64字符串呢?

之前一直用的是request
实现方法是get请求中直接加一个参数 encoding: "base64" 就可以了

require("request")({
    url:URL,
    encoding: "base64",
  }, (err, res, base64) => {
    // 这里就可以拿到图片data的base64字符串了
    AL.log("base64", base64)
  })

请问axios应该如何完成呢?

阅读 6.9k
1 个回答

题主如果要在node下,axios没有这个选项,这里用其它可以图片转base64的package就是。。别再一直改问题了。。

clipboard.png

===

下面是浏览器端的

思路就是制造一个 image 和 canvas 元素进行编码。

这里的图片的url是已知的还是需要ajax进行获取的?如果是已知的就好做了,如果是ajax获取的那么也差不多下面的。

代码没有验证,题主可以试一试,我给注释了。

var img = new Image()
// 把url给img的src属性
img.src = url;
// img加载需要时间,需要onload进行回调
img.onload = function(){
    var canvas = document.createElement('canvas')
    // 设置高宽
    canvas.height = img.height
    canvas.width = image.width
    // 把图片放入 canvas
    canvas.getContext('2d').drawImage(image, 0, 0)
    // 下面这个就是 base64 的数据
    return canvas.toDataURL('image/png')
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题