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和React中diff算法的区别及说明

    Vue和React中diff算法的区别及说明

    React和Vue都使用虚拟DOM和diff算法来更新DOM,但它们在实现上有所不同,React采用基于索引的比较,Vue采用双端比较算法,React在比较时不复用不同类型的节点,而Vue会优先复用两端相同的节点,React对key的依赖较高,而Vue在没有key时也能通过双端比较优化
    2025-03-03
  • vue-resource post数据时碰到Django csrf问题的解决

    vue-resource post数据时碰到Django csrf问题的解决

    这篇文章主要介绍了vue-resource post数据时碰到Django csrf问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • vue实现键盘输入支付密码功能

    vue实现键盘输入支付密码功能

    这篇文章主要为大家详细介绍了vue实现键盘输入支付密码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Vue props 单向数据流的实现

    Vue props 单向数据流的实现

    这篇文章主要介绍了Vue props 单向数据流的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Element中的Cascader(级联列表)动态加载省\市\区数据的方法

    Element中的Cascader(级联列表)动态加载省\市\区数据的方法

    这篇文章主要介绍了Element中的Cascader(级联列表)动态加载省\市\区数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 详解Vue组件复用和扩展之道

    详解Vue组件复用和扩展之道

    这篇文章主要介绍了Vue组件复用和扩展,对vue感兴趣的同学,可以参考下
    2021-05-05
  • vue父组件如何获取子组件的值

    vue父组件如何获取子组件的值

    这篇文章主要介绍了vue父组件如何获取子组件的值,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 基于Vue SEO的四种方案(小结)

    基于Vue SEO的四种方案(小结)

    这篇文章主要介绍了基于Vue SEO的四种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Vue2 响应式系统之异步队列

    Vue2 响应式系统之异步队列

    这篇文章主要介绍了Vue2 响应式系统之异步队列,文章基于Vue2 的相关资料展开对主题的详细介绍,具有一定的参考价值需要的小伙伴可以参考一下
    2022-04-04
  • 浅谈Vue Element中Select下拉框选取值的问题

    浅谈Vue Element中Select下拉框选取值的问题

    下面小编就为大家分享一篇浅谈Vue Element中Select下拉框选取值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03

最新评论