首页 > 其他分享 >JS 通过 URL 获取图片并转成Base64格式

JS 通过 URL 获取图片并转成Base64格式

时间:2022-12-23 18:55:24浏览次数:34  
标签:Base64 const URL base64 JS url axios 图片

需求

输入一个图片的URL, 获取到图片的 Base64 格式数据

前提

npm install axios

代码

import axios from 'axios'

/**
 * 通过 url 获取图片并转成base64
 * @param {string} url
 * @returns {Promise<string>} - base64
 */
export async function imageToBase64(url) {
  // 获取图片的二进制数据
  const { data } = await axios.get(url, { responseType: 'blob' })
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.onloadend = (event) => {
      /// 转换结束回调
      try {
        // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD…9UoI0d6BOexAMoAdfWgzKBJQDTtQJPFAECCgB8UAzoUH/2Q==
        const fullImgBase64 = event.target.result ?? ''
        const imgBase64 = fullImgBase64?.split('base64,')[1] ?? ''
        resolve(imgBase64)
      } catch (e) {
        reject(e)
      }
    }
    // 读取 图片 二进制数据 转成 base64
    reader.readAsDataURL(data)
  })
}

标签:Base64,const,URL,base64,JS,url,axios,图片
From: https://www.cnblogs.com/taohuaya/p/17001332.html

相关文章

  • 关于jsjiami.v6加密和解密
    JavaScript解密是指在JavaScript代码被加密之后,使用特定的工具或方法来恢复其原有的可读性。这种技术通常用于对JavaScript代码进行保护,以防止代码被未经授权的人窃取......
  • 记录两个小坑:js的长整型精度问题、php unset数组后再进行json编码会数据变成字典
    js的长整型精度问题超过15位的长整型js会自动进行进位,传值时需要加上在参数上加""转换为字符串onclick="del('<?=$val['song_id']?>',<?=$params['id']?>)">function......
  • 快速滚动到顶部和底部的js方法
    //平滑的滚动到底部constscrollToBottom=(element)=>element.scrollIntoView({behavior:"smooth",block:"end"});//平滑的滚动到顶部constscrollToTo......
  • 使用PM2将egg.js部署到服务上
    使用PM2将egg.js部署到服务上服务器安装环境Node.jsPM2pm2部署步骤npminstallpm2-gegg.js部署步骤npminitegg--type=simple修改默认端口找到config目录下的conf......
  • libcurl 支持openssl 但不能访问https
    重新编译了libcurl去访问https地址还是不能访问从网上找到了解决方案:curl有两种方式使用https:1.设定为不验证证书和HOSTcode=curl_easy_setopt(handle,CURLOPT......
  • js:Object对象按照key的升序排序
    思路:js的Object对象类型,不能直接排序,不过Array是可以排序的将Object类型的key,转为Array排序,再将结果转为Object示例letdata={name:"tom",age:20,};consol......
  • curl7 命令行使用
    HTTP协议使用代理curl--socks5-hostname127.0.0.1:19996http://www.google.com/curl-xsocks5://127.0.0.1:19996http://www.google.com/retry设置重试次数c......
  • js大文件上传详解及实例代码
    ​4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很......
  • 打字效果 Typed.js
    cnpminstallvue-typed-js<vue-typed-jsclass="desc":strings="typingTexts":loop="true":startDelay="300":typeSpeed="100":backSpeed="50">......
  • nextJs---Image组件自适应父元素
    <divstyle={{flex:'1.3',marginRight:'10px',posit......