上一篇文章说了,一些简单的小程序上传的内容,我在这纠正下错误,那个只是上传到页面,在页面上把图片缩小了,显示在页面上,那个连接还是可以传的,但真正的压缩并没有实现,今天说下另外一种压缩方法,上一张图让大家看的直白些。

这里就不让他去选择菜单了,不会的话请看上一篇文章(选择是拍照还是本地),这里上传图片直接进入到本地去获取

还是上代码 ,里面都有一些我自己理解的注释

var util = require('../../utils/util.js')
var app = getApp()
Page({data: {},// 绘制图片到canvas上drawCanvas: function (res) {const ctx = wx.createCanvasContext('myCanvas');//创建画布var that = this;var _w = res.width,//创建宽高等于获取到的宽高_h = res.height;this.setData({ _w: _w, _h: _h})//传输到视图层ctx.drawImage(res.path,0, 0, _w, _h);//画布中展示图片大小wx.showLoading({title:"压缩中..."})//运行压缩输出文字(显示loading)let timer = setTimeout(function(){//定时事件,和展示图片与wx。showLoading关系密切ctx.draw();//回调函数wx.canvasToTempFilePath({//把当前画布指定区域的内容导出生成指定大小图片,并返回文件路径canvasId:"myCanvas",//画布idquality:0.5,//图片质量,取值范围在(0,1】success:function(res){console.log(res.tempFilePath)//给后台传输这个地址wx.hideLoading()//隐藏loadingclearTimeout(timer);//关闭定时器timer = null;//把定时器制null
        }})},2000)},selectImage(){var that = this;wx.chooseImage({count:1,sizeType: ['original', 'compressed'],//是否是压缩还是原图sourceType: ['album', 'camera'],//是拍照还是本地获取success: function (res) {var tempFilePaths = res.tempFilePaths;//赋值that.setData({ tempFilePaths: tempFilePaths })//发送从逻辑层发送到视图层that.saveImage(that.data.tempFilePaths)//运行事件
      }})},saveImage: function (imageArr) {for (var i = 0, item; item = imageArr[i++];){//遍历this.getImageInfo(item);}},getImageInfo(src){var that = this;wx.getImageInfo({//获取图片信息
      src: src,success:function(res){that.drawCanvas(res);//成功去进行压缩事件
      }})}
})

最后写一个传输方法,把上面的地址传给后台就可以了,遍历是为了传多张图片,但是最终效果没有达到,只能传一张图片了,大神们谁有更好的办法,或能够传多张图片的方法,请告诉下我

转载于:https://www.cnblogs.com/yishifuping/p/9552442.html

小程序中上传图片并进行压缩(二)相关推荐

  1. 微信小程序中裁剪图片以及压缩到指定尺寸并上传

    本文分为两个内容,分别是裁剪图片和压缩 引出问题 1.为何要裁剪图片 因为需要上传头像,但是每个型号的手机拍出来的照片尺寸都不太一样,不能统一,所以,希望在上传之前进行自主裁剪,保证上传到服务器上的尺 ...

  2. 最近在用uniapp做一款app软件,兼容在小程序中可以通过扫描微信二维码获取参数

    功能描述 该接口用于获取小程序码,适用于需要的码数量极多的业务场景.通过该接口生成的小程序码,永久有效,数量暂无限. 注意事项 如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON ...

  3. 小程序中生成带logo的二维码,有源码

    背景: 今天需要做一个会员二维码展示的功能,主要用于会员在线下消费时便于商家快速获取会员信息. 实现: 直接通过js画出来的,这个js是网上开源的.不多说,先上效果图.(第一张是自定义图片:第二张是微 ...

  4. 微信小程序中进行图片压缩

    微信小程序中进行图片压缩 问题: 一般情况下,小程序在进行拍照识别的时候,上传图片的大小会使小程序出现冗余,这个时候,为了减少小程序的冗余 并且使上传的图片可以分辨出该图片中的内容是那些内容,我们就需 ...

  5. 在微信小程序中识别付款二维码

    一.前言 由于微信小程序的规则限制,在小程序内部是无法直接识别二维码的,这样对于想通过微信小程序给微信公众号引流的想法大抵都被扼杀了,偶然间发现微信官方小程序"微保"竟然做到了,而 ...

  6. 转载:在微信小程序中 生成二维码

    目录 转载: weapp-qrcode-canvas-2d 仓库地址 测试环境 使用 安装方法1:直接引入 js 文件 安装方法2:npm安装 安装完成后调用 例子1:没有使用叠加图片 例子2:使用叠 ...

  7. 在H5、微信小程序中使用canvas绘制二维码、分享海报

    在H5.微信小程序中使用canvas绘制二维码.分享海报 文章目录 在H5.微信小程序中使用canvas绘制二维码.分享海报 前言 一.canvas绘制二维码 1.H5中使用canvas 2.微信小程 ...

  8. 如何在微信小程序中生成二维码:一个最简单的案例就让你明白

    使用weapp.qrcode.js 在 微信小程序 中,快速生成二维码 一.效果 二.具体步骤.代码 下载weapp-qrcode代码 然后 将 dist 目录下的weapp.qrcode.esm.j ...

  9. 小程序云开发学习笔记(二)

    目录 JavaScript入门 操作数组 分隔符join方法 数组push方法 移除最后一项pop方法 操作对象 给已有对象添加属性和值 删除对象的某个属性 常量 字符串的操作 Math对象 Date ...

  10. uniapp 微信小程序开发 图片上传压缩

    uniapp 微信小程序开发 图片上传压缩 安卓上传图片并压缩 思路 全部代码 安卓上传图片并压缩 由于后端接口对图片的大小有限制,所以在上传图片是需要压缩处理: uni.chooseImage({c ...

最新文章

  1. win10虚拟内存怎么设置最好_淘宝直通车时间段怎么设置?哪个时间段开最好?...
  2. ZeroC ICE的远程调用框架 ASM与defaultServant,ServantLocator
  3. Leetcode算法题(C语言)15--字符串中的第一个唯一字符
  4. 那个名为 XROS 的操作系统,倒在了元宇宙浪潮中!
  5. 蓝桥杯2020年第十一届Python省赛第一题-门牌制作
  6. Mac天真答疑「6」mac系统使用技巧入门
  7. charles Mock测试总结
  8. 面试精选逻辑推理题总结
  9. android 闹钟设置铃声,安卓手机闹钟设置音乐铃声的方法
  10. 解决远程桌面最小化时,自动化UI(鼠标、键盘)指令不工作问题
  11. 博弈论python实例_博弈论读书笔记(七)贝叶斯博弈举例和显示原理
  12. Please, configure Web Facet first!的解决办法
  13. 全国计算机等级考试二级公共,全国计算机等级考试二级公共基础知识.
  14. Java接口 详解(二)
  15. [转]一往无前 | 小米十周年,雷军公开演讲全文
  16. 将视频背景扣掉换成白色相关知识
  17. qq文件怎么传到百度云_福利|还在用 QQ、微信、百度云传文件?你应该试试这个跨平台传输工具...
  18. 忆17级信管杨友大三学年个人风雨兼程岁月
  19. 【mud】文字mud游戏的魅力(龟跑比赛)
  20. 开发动态网站所需的构件

热门文章

  1. spring教程笔记2
  2. Java从入门到精通 第18章 包及访问权限
  3. Java从入门到精通 第10章 方法
  4. 操作系统 第二部分 进程管理(五)
  5. 2021-06-26数组详解
  6. anaconda打开python文本编辑器_【python】anaconda中打开IDLE(python 自带编辑器)
  7. 区块链 以太坊 solidity 事务控制和异常处理 require assert
  8. FISCO BCOS 区块链交易流程 区块
  9. linux centos lamp,Linux centos lamp之Apache
  10. 远程连接linux主机_Linux远程桌面连接Windows