vue实现将图像文件转换为base64

目录
  • 将图像文件转换为base64
    • 1、image转Base64
    • 2、Base64图像直接显示在标签
  • vue网络图片转base64
    • 单张图片转Base64
    • 多张图片转Base64

将图像文件转换为base64

直入主题,上代码(其实用的还是FileReader)

1、image转Base64

imageToBase64 (file) {
      var reader = new FileReader()
      reader.readAsDataURL(file)
      reader.onload = () => {
        console.log('file 转 base64结果:' + reader.result)
        this.iconBase64 = reader.result
      }
      reader.onerror = function (error) {
        console.log('Error: ', error)
      }
}

2、Base64图像直接显示在标签

<el-form-item prop="iconBase64">
   <img :src="iconBase64" v-show="isShow" />
</el-form-item>

vue网络图片转base64

单张图片转Base64

<script>
    methods: {
		//异步执行
		imageUrlToBase64() {
			//一定要设置为let,不然图片不显示
			let image = new Image();
			//解决跨域问题
			image.setAttribute('crossOrigin', 'anonymous');
			let imageUrl = "http://img1.imgtn.bdimg.com/it/u=4012470373,3540768040&fm=26&gp=0.jpg";
			image.src = imageUrl
			let that = this;
			//image.onload为异步加载
			image.onload = () => {
				var canvas = document.createElement("canvas");
				canvas.width = image.width;
				canvas.height = image.height;
				var context = canvas.getContext('2d');
				context.drawImage(image, 0, 0, image.width, image.height);
				var quality = 0.8;
				//这里的dataurl就是base64类型
				var dataURL = canvas.toDataURL("image/jpeg", quality);//使用toDataUrl将图片转换成jpeg的格式,不要把图片压缩成png,因为压缩成png后base64的字符串可能比不转换前的长!
			}
		},
	}
</script>

多张图片转Base64

<script>
  data() {
    return {
   	 base64Datas: [],
    }
	methods: {
		imageUrlToBase64(){
			let data = [
				"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png",
				"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png",
				"http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png"
			]
			this.imageUrlToBase64(data, 1, data.length);
		},
		//采用递归同步执行
		onloadImg(data, i, len) {
			//一定要设置为let,不然图片不显示
			let image = new Image();
			//解决跨域问题
			image.setAttribute('crossOrigin', 'anonymous');
			let imageUrl = "http://bigf.cqugeo.cn/landslip/res/defaultImages/default.png";
			image.src = imageUrl
			let that = this;
			//image.onload为异步加载
			image.onload = () => {
				var canvas = document.createElement("canvas");
				canvas.width = image.width;
				canvas.height = image.height;
				var context = canvas.getContext('2d');
				context.drawImage(image, 0, 0, image.width, image.height);
				var quality = 0.8;
				//这里的dataurl就是base64类型
				var dataURL = canvas.toDataURL("image/jpeg", quality);//使用toDataUrl将图片转换成jpeg的格式,不要把图片压缩成png,因为压缩成png后base64的字符串可能比不转换前的长!
				//数组存放图片base64
				that.base64Datas.push(dataURL);
				//递归执行图片url转base64
				i = i + 1;
				if (i <= len) {
					that.onloadImg(data1, i, len)
				}
			}
		},
	}
</script>

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

(0)

相关推荐

  • vue.js图片转Base64上传图片并预览的实现方法

    对于前端人员来说,图片处理是一个很常见的需求,由于图片稍微特殊,现在多数做法都是使用调用ajax接口通过http方法来提交,例如post方法提交,后台处理后返回一个图片路径给前端,前端根据这个路径写入img标签,但是基于当前的前后端分离的开发模式下,前后端代码往往不在同一个系统目录下,而且部署时可能liunx路径与windows路径不一样,这样后期路径更改可能会导致维护困难问题出现. 针对这种问题,这里我推荐使用图片转base64格式,再发给后端,后端只需将转码结果存入数据库即可,前端调用接口直

  • vue 通过base64实现图片下载功能

    1. 使用场景 当我们处理图片下载功能的时候,如果本地的图片,那么是可以通过canvas获得图片的base64的,方法如下.但是如果图片的url存在跨域问题的话,下面的方法将行不通,这时候我们可以另辟蹊径,将后台的同学,将图片以base64的形式进行返回. function getBase64(url){ //通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 <img> 省去了 append(),也就避免了文档冗余和污染 va

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

    <img :onerror="errpic" class="customerHead" :src="param.customerHead" alt=""> data() { return { param:{ id:"", customerHead: "", } } } let _this = this let files = e.target.files[0] if (fil

  • Vue实现base64编码图片间的切换功能

    前言 昨天在项目开发中遇到了一个需要展示多张图片到一个容器中的需求,每张图片在鼠标移入时都要更换图片路径,展示一个新的图片,由于每张图片大小都在2~6kb之间,webpack中配置了图片在10kb以内自动转换base64,所有就有了本篇文章的分享.先给大家展示下最后要实现的效果 实现思路 给每个元素添加@mouserover事件和@mouseleave事件 绑定函数,传用于识别当前参数的标识 根据所传参数判断当前状态下应该显示什么图片 解析渲染 实现过程 从json文件中读取图片信息集合,循环渲

  • vue实现将图像文件转换为base64

    目录 将图像文件转换为base64 1.image转Base64 2.Base64图像直接显示在标签 vue网络图片转base64 单张图片转Base64 多张图片转Base64 将图像文件转换为base64 直入主题,上代码(其实用的还是FileReader) 1.image转Base64 imageToBase64 (file) {       var reader = new FileReader()       reader.readAsDataURL(file)       reade

  • Vue结合ElementUI上传Base64编码后的图片实例

    目录 ElementUI上传Base64编码后的图片 安装ElementUI 按需引入(当然如果需要你也可以全部引入) 上传实现 ElementUI把上传的图片转为Base64 ElementUI上传Base64编码后的图片 自我认为ElementUI还是一个很不错的写手机端的组件,所以这次做小项目的时候就用了ElementUI的Upload组件来实现图片的上传,不过ElementUI组件的上传图片更易于实现图片以File文件的形式实现,但是这次我需要把图片转换为base64编码来实现图片的上传

  • javascript从image转换为base64位编码的String

    最近需要把app的微信分享方法开放给webview,涉及到分享的图片,如果通过传送图片连接,那将要在后台再取一次图片文件,会影响速度,我选择webview把image以base64位编码的方式传给本地应用. 下面是实现的参考代码: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"&g

  • Javascript将图片的绝对路径转换为base64编码的方法

    我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: 复制代码 代码如下: var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg"; 我们如下编写代码: function getBase64Image(img) { var canvas = document.createElement("canva

  • Vue 设置图片不转为base64的方式

    目录 Vue设置图片不转为base64 vue-cli 3 .vue-cli 4  版本 vue-cli 2 版本 Vue项目base64转img 输入框 效果展示 Vue设置图片不转为base64 在使用 Vue.js 框架开发项目时,vue-cli创建的webpack模板默认会将10K以下的图片和字体文件转为base64. 好处:带来了更快的渲染,不会因为页面切换时还有加载图片的延迟感. 坏处:打包后的CSS,JS文件非常大,特别是图片数量多的情况下,这个问题尤为明显. vue-cli 3

  • vue项目base64转img方式

    目录 base64转img方式 效果展示 base64和jpg/png互转 base64的转换 base64转img方式 输入框:       <el-input         class="input-box"         ref="elInputText"         type="textarea"         v-model="content"         @paste.native="

  • vue 图片转base64本地路径跨域方式

    目录 图片转base64本地路径跨域 问题描述 解决方案 图片转成base64跨域等安全限制及解决 图片转base64本地路径跨域 问题描述 代码 getUrlBase64(url, ext, callback) { var canvas = document.createElement("canvas"); //创建canvas DOM元素 var ctx = canvas.getContext("2d"); var img = new Image; img.cr

  • js 显示base64编码的二进制流网页图片

    Data URI scheme. Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入.比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张2*2的白色gif图片. 在上面的Data URI中,data表示取得数据的协定名称,image/gif是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/gif文件base64编码后的数据. 目前,Data URI sc

  • vue element upload实现图片本地预览

    vue使用element实现本地预览,最主要的是将图片路径转换为base64,供大家参考,具体内容如下 HTML <el-upload class="avatar-uploader" action="123" //这个路径不重要,可以随便写 :show-file-list="false" :on-success="handleAvatarSuccess" :on-change="onchange" :

  • Vue组件大全包括(UI组件,开发框架,服务端,辅助工具,应用实例,Demo示例)

    Vue是一款比较流行的JS库,本文为大家介绍一些Vue组件,包括UI组件,开发框架,服务端,辅助工具,应用实例,Demo示例等开源项目 一.Vue常用UI组件 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和WeUI的组件库 iview ★5801 - 基于 Vuejs 的开源 UI 组件库 mint-ui ★5517 - Vue 2的移动UI元素 vue-material ★2790 - 通过Vue Material和Vue 2

随机推荐