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


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 相关文章推荐
Prototype使用指南之base.js
Jan 10 Javascript
javascript getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
js函数排序的实例代码
Jul 01 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
Dec 10 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 Javascript
react使用CSS实现react动画功能示例
May 18 Javascript
全面解析JavaScript Module模式
Jul 24 Javascript
详解如何在Canvas中添加事件的方法
Apr 17 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
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
2007/02/03 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
Python深入学习之内存管理
2014/08/31 Python
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
Python虚拟环境项目实例
2017/11/20 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
使用requests库制作Python爬虫
2018/03/25 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Python Web版语音合成实例详解
2019/07/16 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
Python多分支if语句的使用
2020/09/03 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
决心书标准格式
2014/03/11 职场文书
一帮一活动总结
2014/05/08 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
通知范文怎么写
2015/04/16 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL