vue项目base64转img方式

 更新时间:2022年04月09日 15:36:38   作者:嗷呜~  
这篇文章主要介绍了vue项目base64转img方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

base64转img方式

输入框:

      <el-input
        class="input-box"
        ref="elInputText"
        type="textarea"
        v-model="content"
        @paste.native="onPasteEvent"
        @keydown.native.enter.prevent="handlerKeyupEnter"
      ></el-input>

设定一个 dialog 弹框。

    <!-- 图片预览dialog -->
    <el-dialog
      title="图片预览"
      :visible.sync="previewImgObj.show"
      v-if="previewImgObj.show"
      append-to-body
    >
      <img
        width="100%"
        v-if="previewImgObj.imgUrl"
        class="ly-margin-center"
        :src="previewImgObj.imgUrl"
        v-image-view
      />
      <span slot="footer" class="dialog-footer">
        <el-button @click="previewImgObj.show = false">取 消</el- button>
        <el-button type="primary" @click="sendBase64ImgMessge">确 定</el-button>
      </span>
    </el-dialog>
    // 监听粘贴事件
    async onPasteEvent(e) {
      e.preventDefault();
      let data = await addEventPasteListener(e);
       if (data.type === "string") {
        // 复制某条消息
        if (!data.string) return;
        // console.log(data.string)
        // 正则表达式判断data是否是base64
        function validDataUrl(s) {
          return validDataUrl.regex.test(s);
        }
        validDataUrl.regex = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i;
        // 如果是base64转换成图片预览
        if (validDataUrl(data.string)) {
          let that = this;
          function previwImg(item) {
            that.previewImgObj = {
              show: true,
              imgUrl: item
            };
          }
          previwImg(data.string);
        }
     }

效果展示

base64和jpg/png互转

base64的转换

在中调用base64格式的照片

方式一

<image :src="getBase64(base64)"/>
getBase64(base64){
    var changebase64='data:image/jpg;base64,'+base64.replace(/[\r\n]/g,'')
    console.log(changebase64)
    return changebase64
   },

方式二:vue -element 在image组件中直接调用base64

    <el-table :data="devicePersonData" >
      <el-table-column label="照片">
        <template  #default="scope">
        <el-image style="width: 60px;border-radius: 6px"
                  :src="getBase64(scope.row.base64)"></el-image>
        </template>
      </el-table-column>
      <el-table-column
        label="姓名"
        prop="name">
      </el-table-column>
      </el-table-column>
    </el-table>
 // 转换base64
getBase64 (base64) {
  return 'data:image/png;base64,' + base64
}

方式三:Element UI 中将上传的图片转换成base64

<el-upload
  class="avatar-uploader"
  action="company/update"
  :headers="headers"
  :auto-upload="false"
  :data="logoData"
  :show-file-list="false"
  :on-change="getFile">
</el-upload>
// <el-upload>组件中的on-change事件(将获取到的照片文件去转换为base64)
getFile (file, fileList) {
    //这里使用'.then()'去获取Promise的返回结果
  this.changeBase64(file.raw).then(res => {
    this.imageUrl = res
  })
},
 //将获取到的照片文件去转换为base64
changeBase64 (file) {
  return new Promise(function (resolve, reject) {
    const reader = new FileReader()
    let imgResult = ''
    reader.readAsDataURL(file)
    reader.onload = function () {
      imgResult = reader.result
    }
    reader.onerror = function (error) {
      reject(error)
    }
    reader.onloadend = function () {
      resolve(imgResult)
    }
  })
},
    // 因为转换后的base64是带头部的,如果需要去掉则可以使用replace()去替换
    const Base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA......"
       // place(serchValue:/搜索字符串/,replaceValue:'替换字符串')
    Base64.replace(/^data:image\/\w+;base64,/, '')

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Vue实现侧边导航栏于Tab页关联的示例代码

    Vue实现侧边导航栏于Tab页关联的示例代码

    本文主要介绍了Vue实现侧边导航栏于Tab页关联的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Vue3 setup 的作用实例详解

    Vue3 setup 的作用实例详解

    setup 用来写组合式 API,从生命周期的角度,相当于取代了 beforeCreate(),这篇文章主要介绍了Vue3 setup 的作用,需要的朋友可以参考下
    2022-12-12
  • vue3中的Proxy一定要用Reflect的原因解析

    vue3中的Proxy一定要用Reflect的原因解析

    Reflect可以操作对象使用, proxy可以代理对象,但没有找到为啥有时一定要在Proxy代理方法中使用Reflect,这篇文章主要介绍了vue3中的Proxy一定要用Reflect的原因解析,需要的朋友可以参考下
    2023-04-04
  • vue实现购物车完整功能

    vue实现购物车完整功能

    这篇文章主要为大家详细介绍了vue实现购物车完整功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • vue 开发企业微信整合案例分析

    vue 开发企业微信整合案例分析

    这篇文章主要介绍了vue 开发企业微信整合,结合具体案例形式分析了vue.js使用企业微信JSSDK实现手机端程序可以和企业微信进行整合功能的相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • vue3项目keepAlive使用方法详解

    vue3项目keepAlive使用方法详解

    keepalive是Vue的内置组件,作用是将组件缓存在内存当中,防止重复渲染DOM,属于消耗内存获取速度,这篇文章主要介绍了vue3项目keepAlive使用方法,主要将keepaliev在vue3.0中的用法,需要的朋友可以参考下
    2024-03-03
  • vue,uniapp--js禁止页面滚动,取消滚动方式

    vue,uniapp--js禁止页面滚动,取消滚动方式

    这篇文章主要介绍了vue,uniapp--js禁止页面滚动,取消滚动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 如何隐藏element-ui中tree懒加载叶子节点checkbox(分页懒加载效果)

    如何隐藏element-ui中tree懒加载叶子节点checkbox(分页懒加载效果)

    这篇文章主要介绍了如何隐藏element-ui中tree懒加载叶子节点checkbox(分页懒加载效果),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 基于vue中对鼠标划过事件的处理方式详解

    基于vue中对鼠标划过事件的处理方式详解

    今天小编就为大家分享一篇基于vue中对鼠标划过事件的处理方式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue金融数字格式化(并保留小数)数字滚动效果实现

    Vue金融数字格式化(并保留小数)数字滚动效果实现

    这篇文章主要介绍了Vue金融数字格式化(并保留小数) 数字滚动效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论