vue项目base64字符串转图片的实现代码

实现base64字符串转图片的代码如下:

/**
 * base64字符串转图片
 * @param {String} dataUrl base64字符串
 * @return {Object} 图片 Blob 对象
 */
function dataURLtoBlob (dataUrl) {
  const arr = dataUrl.split(',')
  const mime = arr[0].match(/:(.*?);/)[1]
  const bstr = atob(arr[1])
  let n = bstr.length
  const u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new Blob([u8arr], { type: mime })
}

其中 dataUrl 为 base64 编码的字符串,返回结果为图片的 Blob 对象。

使用该函数将 base64 字符串转换为图片,可以按照以下步骤进行操作:

  1. Vue 组件中引入该函数:
import dataURLtoBlob from '@/common/utils'
  1. 将 base64 字符串传入函数中,获取图片 Blob 对象:
// 示例1:将 base64 字符串转换为图片 Blob 对象
const blob = dataURLtoBlob('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAACXBIWXMAABJ0AAAf+QGF5gTRAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAIABJREFUeAGs3Xm4rXWd/kVjRZ2Y8zZzJl4gTKyZKRMhbEKLpEaS6qC6qLdQ50t6ytQqBX5NAHpsf7DE+/Oeu3bu23SYxt7bsqV7Xu7D9e/RIAAAEI/wBxgLn9LHBf/3u7FoAAAAASUVORK5CYII=')
  1. 使用 URL.createObjectURL() 将图片 Blob 对象转换为图片地址:
const imgUrl = URL.createObjectURL(blob)
  1. 将图片地址展示在页面上:
<!-- 示例2:将图片展示在页面上 -->
<template>
  <div>
    <img :src="imgUrl" alt="图片" />
  </div>
</template>

<script>
// 在组件中引入该函数
import dataURLtoBlob from '@/common/utils'

export default {
  data () {
    imgUrl: ''
  },
  mounted () {
    const dataUrl = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAACXBIWXMAABJ0AAAf+QGF5gTRAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAIABJREFUeAGs3Xm4rXWd/kVjRZ2Y8zZzJl4gTKyZKRMhbEKLpEaS6qC6qLdQ50t6ytQqBX5NAHpsf7DE+/Oeu3bu23SYxt7bsqV7Xu7D9e/RIAAAEI/wBxgLn9LHBf/3u7FoAAAAASUVORK5CYII='
    const blob = dataURLtoBlob(dataUrl)
    const imgUrl = URL.createObjectURL(blob)
    this.imgUrl = imgUrl
  }
}
</script>

这样操作后就可以将 base64 字符串转换为图片,并在页面上展示出来了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue项目base64字符串转图片的实现代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue实现全匹配搜索列表内容

    下面是基于Vue实现全匹配搜索列表内容的完整攻略及示例说明: 1. 实现思路: 创建一个Vue实例 在data中定义一个数据列表,例如list: [‘apple’, ‘banana’, ‘orange’, ‘pear’, ‘watermelon’, ‘grape’] 在data中定义一个搜索关键字,例如keyword: ” 通过computed计算属性对数…

    Vue 2023年5月29日
    00
  • VUE的数据代理与事件详解

    VUE的数据代理与事件详解 数据代理 VUE中使用了 数据代理 的方式来进行数据绑定和更新。具体来说,当我们在VUE实例中的 data对象 上定义一个属性时,VUE会将该属性转化为getter和setter函数,并且将它们添加到VUE实例上。这样,每当我们通过VUE实例访问这个属性时,就会触发相应的getter或setter函数。 例如,我们在VUE实例中定…

    Vue 2023年5月28日
    00
  • 手把手搭建安装基于windows的Vue.js运行环境

    下面是手把手搭建安装基于Windows的Vue.js运行环境的完整攻略: 1. 安装Node.js 首先,需要安装Node.js作为运行Vue.js项目的环境。可以从官网https://nodejs.org/en/下载适合自己操作系统的版本进行安装。 安装完成后,可以在命令行工具中输入以下命令来检查安装是否成功: node -v 如果安装成功,则会显示Nod…

    Vue 2023年5月27日
    00
  • Vue使用provide各种传值后inject获取undefined的问题及解决

    在Vue中,可以通过provide和inject实现非父子组件之间的数据传递。但是,在实际使用中,会遇到使用provide传递的值在inject中获取时出现undefined的情况。本文将详细讲解这个问题以及解决方案。 问题表现 使用provide向子组件提供数据,但在子组件中使用inject获取时,却获取到了undefined。 问题原因 在Vue中,pr…

    Vue 2023年5月28日
    00
  • mqtt.js 无法连接/错误提示 WebSocket connection to ‘ws://xxxxx‘ failed:的解决方法

    首先,需要了解一下MQTT协议和mqtt.js库。MQTT是一种用于物联网的轻量级协议,基于发布/订阅模式,支持良好的可靠性和低带宽消耗。而mqtt.js是MQTT协议的JavaScript客户端库,可以用于浏览器和Node.js环境下。 当在使用mqtt.js连接MQTT服务器时,出现“WebSocket connection to ‘ws://xxxxx…

    Vue 2023年5月28日
    00
  • SpringBoot集成支付宝沙箱支付的实现示例

    下面是详细讲解“SpringBoot集成支付宝沙箱支付的实现示例”的完整攻略: 一、前置准备 注册并开通阿里云账号。 创建一个支付宝沙箱应用,获取支付宝沙箱应用 ID 和秘钥。 了解支付宝接口文档和SDK相关内容。 选择合适的开发语言和开发框架。本教程采用 SpringBoot 框架。 二、添加依赖 在 pom.xml 文件中添加 Alibaba maven…

    Vue 2023年5月28日
    00
  • vue给对象添加属性没有响应式的问题及解决

    针对“vue给对象添加属性没有响应式的问题及解决”的问题,我们需要了解Vue的响应式系统以及如何正确地添加响应式属性。 Vue的响应式系统 首先,我们需要了解Vue的响应式系统是基于ES5的Object.defineProperty实现的,它会在监听的属性被修改时触发更新。当我们通过Vue.$set或者直接使用赋值的方式改变组件的data中对象的属性时,我们…

    Vue 2023年5月28日
    00
  • Vue精简版风格概述

    Vue精简版风格概述 什么是Vue精简版风格? Vue精简版风格是使用Vue框架开发大型Web应用程序的一种设计风格。它强调组件化和功能模块化,以简化应用程序代码的维护和扩展。 Vue精简版风格的设计原则 Vue精简版风格的设计原则包括: 单一职责原则:每个组件只负责一个功能。 组件化:将UI和业务逻辑封装为组件。 功能模块化:将应用程序分解成功能模块,每个…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部