首页 > 其他分享 >js_使用axios请求图片资源, 并读取图片资源为base64格式

js_使用axios请求图片资源, 并读取图片资源为base64格式

时间:2023-08-24 21:55:18浏览次数:37  
标签:responseType axios 读取 base64 blob 图片

  • 情景再现: 今天在写页面时遇到这么一个请求: 有一张图片, 默认隐藏, 要求在该图片加载完毕后, 执行取消隐藏的动画. 目的是不要在执行动画期间图片有空白的样子. 第一个想到的当然是img的onload回调函数. 但是天生反骨不爱用行内元素. 于是想到使用ajax请求图片资源, 再使用FileReader读取图片数据, 使用readAsDataURL来转成Base64格式, 将图片以块元素的背景来进行渲染.

使用ajax读取图片资源

  • 这里使用axios读取图片资源, 读取到的是二进制流, axios可以标记响应数据格式, 更为方便一点

  • axios.get('图片地址',
    	{
          responseType: 'blob', // `responseType` 表示服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
        }
      )
      .then(response => {
        // 在这里处理数据
      })
      .catch(err => {
       	// 在这里处理错误
      })
    

使用FileReader读取图片资源并转为base64格式

  • axios.get('图片地址',
    	{
          responseType: 'blob', // `responseType` 表示服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
        }
      )
      .then(response => {
        const reader = new FileReader()
        reader.readAsDataURL(response.data)
        reader.onload = function () {
          oAvatorContent.style.backgroundImage = `url(${this.result})` // 将转化的base64格式图片数据赋值给块元素的背景属性
          oAvatorContainer.classList.add('active') // 执行动画
        }
      })
      .catch(err => {
        // 在这里处理错误
      })
    

标签:responseType,axios,读取,base64,blob,图片
From: https://www.cnblogs.com/isAyi/p/17655265.html

相关文章

  • 手算base64
    CSP2021考了……什么鬼……base64是什么Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信......
  • VUE- elementUI使用quill富文本编辑器(编辑文本、上传图片)
    准备工作:安装 yarninstall vue-quill-editormain.js//编辑器importVueQuillEditorfrom'vue-quill-editor'//引入样式import'quill/dist/quill.core.css'import'quill/dist/quill.snow.css'import'quill/dist/quill.bubble.css'......
  • vue中,一个参数是一个图片网络地址,当重新上传一个图片替换原来的图片后,地址没变,但是图
    这个问题可能是由于浏览器缓存导致的。为了解决这个问题,你可以向图片的URL地址中添加一个随机参数,以确保每次加载图片时都会从服务器获取最新的图片。你可以使用类似于以下方式来添加随机参数:<img:src="imageUrl+'?timestamp='+Date.now()"/>这样,每次你更新了图片后,URL中......
  • Base64编码和解码
    1、依赖sun.misc.BASE64Decoder.jar/***Base64编码*@paramdata要加密的字符数组*@returnString加密后的16进制字符串*/publicstaticStringencode(byte[]data){returnnewBASE64Encoder().encode(data);}/***Base64解码*@paramdata要解密......
  • IntersectionObserver 实现图片懒加载、列表无限滚动等功能
    过去,要检测一个元素是否可见或者两个元素是否相交并不容易,比如实现图片懒加载、内容无限滚动等功能时,都需要通过​getBoundingClientRect()​写大量的逻辑计算或者依靠scroll事件监听等性能很差方式来实现。现在,依靠IntersectionObserver(交叉观察器)我们能非常便捷且高效的实现上......
  • 如何快速一键批量压缩图片?推荐你一个工具无需登录免费处理!!
    今天给大家推荐一个简单免费的批量压缩图片网站,不用注册,无需付费,一键批量压缩 画好图网站地址:画好图-免费在线图片转换处理画好图可以压缩JPG、PNG、SVG,以及GIF以及更多的图片格式,同时节省空间、保持质量。它可以将原图压缩到非常小,同时保持画质损失非常低。与其他图片压缩......
  • 图片预览组件 (放大 缩小 旋转 鼠标拖动)
    效果图其中的图片初始化不需要如果需要可自行修改一下**完整代码如下**点击查看代码<template><transitionname="zoom"><divclass="previewImage_wrapper"ref="previewImage_wrapper"@wheel="handleScroll"><divclass=&......
  • 直播网站程序源码,Java实现图片压缩
    直播网站程序源码,Java实现图片压缩1、Thumbnailator简介    对于图片处理,JDK中也提供了对应的工具类,不过处理起来会很麻烦,而Thumbnailator是一个Google开源的优秀图片处理的第三方Java类库,处理效果远比JavaAPI的好。    Thumbnailator可以使用很少的代码实现......
  • Unity UGUI的Image(图片)组件的介绍及使用
    UGUI的Image(图片)组件的介绍及使用1.什么是UGUI的Image(图片)组件?UGUI的Image(图片)组件是Unity引擎中的一种UI组件,用于显示2D图像。它提供了一种简单而灵活的方式来在游戏中加载和显示图片。2.为什么要使用UGUI的Image(图片)组件?使用UGUI的Image组件可以方便地在游戏中展示各种图......
  • 使用 jsqr 解析二维码图片内容
    npminstalljsqr <template><div><buttontype="primary"@click="handUpload">上传图片</button><divstyle="display:none;"><inputtype="file"accept="image/png,......