js_使用axios请求图片资源, 并读取图片资源为base64格式
- 情景再现: 今天在写页面时遇到这么一个请求: 有一张图片, 默认隐藏, 要求在该图片加载完毕后, 执行取消隐藏的动画. 目的是不要在执行动画期间图片有空白的样子. 第一个想到的当然是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 => { // 在这里处理错误 })
分类:
javascript
, daily
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-08-30 (转)js中this指向问题: (object.getName = object.getName)()为何返回“window”