1.html中添加隐藏的input

<imgclass="input-img-wrap"v-on:click="imgClick()":src="fapiao"v-if="fapiao"/><div class="input-img-wrap" @click="imgClick" v-else><img src="../../assets/img/common/+_icon.png" alt="" /><span>上传图片</span></div><inputstyle="display: none;"type="file"id="uploadFile"accept="image/png,image/jpeg"v-on:change="readLocalFile()"
/>

2.压缩图片

核心代码:

1.FileReader将input中的图片本地url变为图片Base64编码。

var localFile = document.getElementById("uploadFile").files[0];

var reader = new FileReader();

reader.onerror

reader.readAsDataURL(localFile , 'UTF-8')

reader.onLoad(function(event) {

content = event.target.result;

})

2.通过Image赋值src,计算图片宽高创建同样宽高的canvas,然后将Image绘制到canvas上,通过canvas.toDataURL("image/jpg", rate)获得压缩的图片Base64数据

data() {return {fapiao: ""};
},
mounted() {vm = this;
},
methods: {imgClick: function() {document.getElementById("uploadFile").click();},//点击选中图片async readLocalFile() {var localFile = document.getElementById("uploadFile").files[0];var reader = new FileReader();var content;var compress = this.compress;reader.onload = function(event) {content = event.target.result;compress(content, 450, function(content0) {console.log("final=" + content0.length / 1024 + "KB");vm.fapiao = content0;});};reader.onerror = function() {alert("error");};reader.readAsDataURL(localFile, "UTF-8");},// 压缩图片compress: function(content, size, callback) {if (content.length <= size * 1024) {callback(content);return;}let canvas = document.createElement("canvas");let ctx = canvas.getContext("2d");let img = new Image();img.src = content;img.onload = function() {let width = img.width;let height = img.height;canvas.width = width;canvas.height = height;// 铺底色ctx.fillStyle = "#fff";ctx.fillRect(0, 0, width, height);ctx.drawImage(img, 0, 0, width, height);let rate = (1024 * size) / content.length;console.log("size=" + size + " rate=" + rate);console.log("**压缩前**" + content.length / 1024 + "KB");//进行压缩content = canvas.toDataURL("image/jpeg", rate);console.log("**压缩后**" + content.length / 1024 + "KB");callback(content);};}}

js手机端上传图片,带压缩图片相关推荐

  1. html5手机端响应式图片相册幻灯片插件特效

    html5手机端响应式图片相册幻灯片插件特效 作品介绍 1.网页作品简介方面 :html5手机端响应式图片相册幻灯片插件特效 2.网页作品编辑方面:作品下载后可使用任意HTML编辑软件(例如:DW.H ...

  2. 手机端网页中图片之间出现白线的解决方法

    手机端网页中图片之间出现白线的解决方法 参考文章: (1)手机端网页中图片之间出现白线的解决方法 (2)https://www.cnblogs.com/syzdidi/p/9686463.html 备 ...

  3. 手机端网页设计尺寸,手机端网页设计图片尺寸

    电脑网页的设计尺寸 对大于30W台客户端用户进行测试,得到的测试数据如下(数据来源于网络): 安全分辨率为1024 X 768 px 可建议大分辨率为1280 X 800 px 在Window XP常 ...

  4. JS手机端移动端长按longtap事件

    JS手机端移动端长按longtap事件移动端并没有所谓的longtap事件,即长按事件.但是,有时候会用到,只能借助touchstart.touchmove.touchend三个事件以及延迟setTi ...

  5. (带手机端)美女图片美女写真网站模板 性感美女图片分享网站源码

    模板名称:(带手机端)美女图片美女写真网站 性感美女图片分享网站 该模板属于美女图片类.美女写真.图片分类企业都可使用这款模板使用范围极广,不仅仅局限于一类型的企业,你只需要把图片和产品内容换成你的, ...

  6. zepto.js手机端开宝箱动画js特效

    下载地址 zepto.js实现的手机端开宝箱动画特效 dd:

  7. JS 手机端摇一摇 苹果IOS13.3高版本处理

    苹果IOS13.3高版本需要 动作与方向授权以后才能进行摇一摇,授权过程必须有点击才能授权.在进入需要摇一摇的页面的时候可以进行授权,在进行提示点击我用的是手机端swal插件进行提示点击授权. 拒绝授 ...

  8. 手机端如何把图片传到php后台,android上传图片到PHP后台全过程

    DB2离线和在线全备.增量备份及恢复的操作步骤 1.离线全备份 1).首先确保没有用户使用DB2: $db2 list applications for db sample 2).停掉数据库并重新启动 ...

  9. js手机端图片弹出方法

    1 $("img").click(function(){ //获取窗口可视大小 2 var width=$(window).width(); 3 var height=$(wind ...

  10. 手机端上传图片出现“没有应用可执行操作”

    H5页面上传图片,在PC测试一切正确, 但是在手机端操作,微信浏览器和部分手机自带浏览会出现"没有应用可执行操作",无法弹出选择图片框.代码如下 <input style=& ...

最新文章

  1. tableau可视化数据分析60讲(二)-tableau入门篇之各模块功能介绍
  2. dve 二维数组信号 显示波形_函数任意波形发生器价格
  3. SparkSQL发展历史,DataFrame,SparkSQL的数据源,运行框架,tree和rule,Rule,Context运行过程,hiveContext运行过程,SparkSQL CLI等
  4. [LeetCode] Valid Anagram - 字符串排序比较系列
  5. 2017年关于数据科学的六大预言
  6. 【转】QT中添加的资源文件qrc时的路径问题小结
  7. 阿里巴巴后台的使用体验
  8. 安装低版本的R语言、和自行下载安装各个版本的R语言包、以及多环境运行R
  9. python与线性代数 线性方程组的解集
  10. 智能机器人建房子后房价走势_日本房价走势分析:房产投资是否“未来可期”?...
  11. 区块链开发(三)以太坊客户端命令行选项汇总
  12. intel 9260AC网卡修改成Killer 1550
  13. 汽车UDS诊断之诊断会话控制服务(0x10)深度剖析
  14. linux与pe到移动硬盘,PE下找不到移动硬盘?不用怕
  15. 【BJOI2019】排兵布阵 DP
  16. 库存流水账计算结余数量
  17. Silverlight实用窍门系列:29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态【附带源码实例】...
  18. MiKTeX + Texmaker ← 推荐的 LaTeX 学习环境
  19. 遍历本路径下所有文件夹和子文件夹,修改文件后缀名
  20. 刷题/笔试常(自)用模板

热门文章

  1. [放遗忘]PR进行视频剪辑的两种办法
  2. apply,call,bind重新定义this的区别
  3. js自执行函数(function(){})()前加个分号是什么意思?
  4. win10系统任务栏不显示最小化窗口的处理步骤
  5. Cytoscape.js 学习
  6. Windows又又又更新?Win 12开发将于下个月开始
  7. 一文搞懂 UndeclaredThrowableException
  8. Oracle PL/SQL开发基础(第十五弹:同义词)
  9. 今年春节北京烟花爆竹备货量下降46.7%
  10. 如何实现微信扫码登录--OAuth2