图片转base64编码并展示

将图片转base64编码,即将图片转化为一串字符串,该字符串可替代图片的地址。

<template>
    <div>
        <input type="file" id="id" name="image" accept="image/jpg, image/jpeg, image/png" @change="img()">
        <!-- <div v-for="item in picPathList" :key="item.index">
            <img :src="item.src" alt="" style="width:100px;height:100px">
        </div> -->
        <img :src="picPath" alt="" style="width:100px;height:100px">
    </div>
</template>
export default {
    data() {
        return {
            // picPathList:[],
            picPath:"",
        }
    },
    methods:{
        img() {
            let imgList;
            let base64Img;
            let file = document.getElementById("id").files[0]; //获取图片对象
            let reader = new FileReader(); //实例化对象
            reader.readAsDataURL(file) //将文件读取为DataURL
            reader.onload = e => { 
                imgList = e.target.result
                base64Img = imgList.split(',')[1] //imgList.split(',')[1]:为图片的Base64编码,base64url格式:'data:image/png;base64,'+ base64
                this.picPath='data:image/png;base64,'+ base64Img
                // this.picPathList.push({src:this.picPath})
            }

        },
    }
}

需要在img标签中展示图片仅需将路径拼接为:‘data:image/png;base64,’+ base64该格式
效果展示:
在这里插入图片描述
补充:
在这里插入图片描述
代码中的这一部分我起初是这样写的:
在这里插入图片描述
这样会导致异步从而 2处的this.picPath将获取不到值
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值