微信小程序实现上传图片裁剪图片过程解析


Posted in Javascript onAugust 22, 2019

有的时候我们上传头像,商品图片这些的时候有的希望上传的是自己想要的图片形状,吧图片宽高固定死的话,他又会变形,比列差不多的看起来没什么区别,不固定的话,他们会宽的高的不一样,看起来完全不舒服,不美观了。

所以想了个这样的办法,用这个裁剪工具,在选择图片的时候,就把图片的大小裁剪成自己想要的大小,这样就都一致了,下面我们来看看吧!

微信小程序实现上传图片裁剪图片过程解析

wxml:

<view class="wancll-padded-15 wancll-bg-white wancll-font-size-14">
 <view class="wancll-padded-l-5 wancll-padded-b-10">商品图片:</view>
 <view class="comlist-image is-flex wancll-padded-l-5">
  <view class='image-list' wx:if="{{imgs.length}}" wx:for="{{imgs}}" wx:key="key">
   <zan-badge catchtap='deleltImage' data-id='{{index}}'>x</zan-badge>
   <view class='add-image' catchtap='previewImage' data-id='{{index}}'>
    <image class='up-img' src="{{item}}" mode="aspectFill" />
   </view>
  </view>
  <view class='add-image' catchtap='addImage'>+</view>
 </view>
</view>

wxss

.comlist-image{
 display: flex;
 flex-wrap: wrap
}
.comlist-image .image-list{
 margin-right: 20rpx;
}
.comlist-image .up-img{
 width: 100rpx;
 height: 100rpx;
}
.comlist-image .add-image{
 width: 100rpx;
 height: 100rpx;
 padding: 10rpx;
 display: flex;
 justify-content: center;
 align-items: center;
 border: 1px solid #ccc;
 border-radius: 5px;
 font-size: 50rpx;
}

js:

data: {imgs:[]}

 // 添加图片
 addImage() {
  if (this.data.imgs.length>=5){
   APP.util.toast('商品图片不能超过5张')
   return
  }
  wx.chooseImage({
   count: 1,
   sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
   sourceType: ['camera', 'album'], // 可以指定来源是相册还是相机,默认二者都有
   success: function (res) {
    // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
    var tempFilePaths = res.tempFilePaths;
    wx.navigateTo({
     url: "/pages/UploadImg/index?src=" + tempFilePaths
    });
   }
  });

 },
 // 图片预览
 previewImage(e) {
  let id = APP.util.getDataSet(e, 'id')
  wx.previewImage({
   current: this.data.imgs[id],
   urls: this.data.imgs,
  })
 },
 // 删除预览图片
 deleltImage(e) {
  let id = APP.util.getDataSet(e, 'id')
  let arr = this.data.imgs
  arr.splice(id, 1);
  this.setData({
   imgs: arr
  })
 },

将UploadImg.rar下载,放入\pages文件夹中

将weCropper.js下载,放入随便一个文件夹中引入即可

Javascript 相关文章推荐
用js实现多域名不同文件的调用方法
Jan 12 Javascript
JS获取页面窗口大小的代码解读
Dec 01 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
Dec 11 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
jquery中one()方法的用法实例
Jan 16 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
Postman的下载及安装教程详解
Oct 16 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 #Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 #Javascript
node express使用HTML模板的方法示例
Aug 22 #Javascript
vue中使用v-model完成组件间的通信
Aug 22 #Javascript
layui动态表头的实现代码
Aug 22 #Javascript
深入理解令牌认证机制(token)
Aug 22 #Javascript
聊聊鉴权那些事(推荐)
Aug 22 #Javascript
You might like
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
了解JavaScript函数中的默认参数
2019/05/30 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
Python和Go语言的区别总结
2019/02/20 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
村干部培训班主持词
2014/03/28 职场文书
说明书怎么写
2014/05/06 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python