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


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类中获取外部函数名的方法
Aug 19 Javascript
JavaScript 页面坐标相关知识整理
Jan 09 Javascript
jquery的attr方法禁用表单元素禁用输入内容
Jun 23 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
jquery获取点击控件的绝对位置简单实例
Oct 13 Javascript
使用Angular.js开发的注意事项
Oct 19 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
Vue中div contenteditable 的光标定位方法
Aug 25 Javascript
react国际化react-intl的使用
May 06 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
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
php中namespace及use用法分析
2016/12/06 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Python中的闭包总结
2014/09/18 Python
Python实现建立SSH连接的方法
2015/06/03 Python
python日志记录模块实例及改进
2017/02/12 Python
Python中with及contextlib的用法详解
2017/06/08 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python datetime包函数简单介绍
2019/08/28 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
怎么处理XML的中文问题
2015/03/26 面试题
幼儿教师自我鉴定
2013/11/02 职场文书
数据员岗位职责
2013/11/19 职场文书
报关报检委托书
2014/04/08 职场文书
医院见习报告范文
2014/11/03 职场文书
实习科室评语
2015/01/04 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python