我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信小程序实现裁剪图片大小

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信小程序实现裁剪图片大小

本文实例为大家分享了微信小程序实现裁剪图片大小的具体代码,供大家参考,具体内容如下

效果图

.wxml

<button bindtap="uploadtap">上传图片</button>
<image style="width: 100%;" mode="widthFix" class="lazy" data-src="{{canfile_image}}"></image>
<canvas canvas-id="myCanvas" id="myCanvas" style="width:100%;height:70vh;"></canvas>
<view class="canvas_model" wx:if="{{canvas_arr.show}}" catchtouchmove="setTouchMove">
  <view class="canvas_view" style="width: {{canvas_arr.width}}px;height: {{canvas_arr.height}}px;"
  bindtouchstart="handletouchstart" bindtouchmove="handletouchmove">
    <image style="width:100%;height:100%;" class="lazy" data-src="{{canvas_arr.class="lazy" data-src}}"></image>
    <view style="{{color_status?'background: rgba(0, 0, 0, 0.6);':''}}">
      <view class="canvas_horn" style="height:{{cutting.height}}px;top:{{canvas_y}}px;">
        <view></view>
        <view></view>
        <view></view>
        <view></view>
        <view></view>
        <view></view>
        <image style="width: {{canvas_arr.width}}px;height: {{canvas_arr.height}}px;top:-{{canvas_y}}px;" class="lazy" data-src="{{canvas_arr.class="lazy" data-src}}"></image>
      </view>
    </view>
  </view>
  <view class="canvas_bar" wx:if="{{cutting.show}}">
    <view bindtap="color_tap">×</view>
    <view class="bar_tab {{color_status?'tab_cation':''}}" bindtap="color_tap" data-type="1">
      <view>浅色</view>
      <view>深色</view>
      <view></view>
    </view>
    <view bindtap="ationimg">√</view>
  </view>
</view>

.wxss

 .canvas_model{width: 100%;height: 100vh;position: fixed;left: 0;top: 0;background: rgba(0, 0, 0, 0.6);z-index: 10;
display:flex;justify-content: center;padding-top: 10vh;animation:model 0.3s;}
@keyframes model{
  from { opacity: 0;transform: scale(0.5); }
  to { opacity:1;transform: scale(1); }
}
.canvas_view{float: left;position: relative;}
.canvas_view>view{width: 100%;height: 100%;position: absolute;left: 0;top: 0;background: rgba(255, 255, 255, 0.4);transition: all 0.3s;}
.canvas_horn{position: absolute;left: 0;width: 100%;overflow: hidden;}
.canvas_horn>view{width: 40rpx;height: 40rpx;position: absolute;z-index: 1;}
.canvas_horn>image{position: absolute;left: 0;top: 0;}
.canvas_horn>view:nth-child(1){border-left: 2px solid #fff;border-top: 2px solid #fff;left: 0;top: 0;}
.canvas_horn>view:nth-child(2){border-right: 2px solid #fff;border-top: 2px solid #fff;right: 0;top: 0;}
.canvas_horn>view:nth-child(3){border-left: 2px solid #fff;border-bottom:2px solid #fff;left: 0;bottom: 0;}
.canvas_horn>view:nth-child(4){border-right: 2px solid #fff;border-bottom: 2px solid #fff;right: 0;bottom: 0;}
.canvas_horn>view:nth-child(5){width: 60rpx;height: 2px;background: #fff;top: 0;left: 0;right: 0;margin: 0 auto;}
.canvas_horn>view:nth-child(6){width: 60rpx;height: 2px;background: #fff;bottom: 0;left: 0;right: 0;margin: 0 auto;}
.canvas_bar{width: 100%;height: 14vh;display: flex;align-items: center;justify-content: space-between;background: #fff;
position: absolute;left: 0;bottom: 0;animation:bartion 0.5s;}
@keyframes bartion{
  from { bottom: -14vh; }
  to { bottom: 0; }
}
.canvas_bar>view:nth-child(1),.canvas_bar>view:nth-child(3){width: 160rpx;height: 100%;display: flex;align-items: center;
justify-content: center;font-size: 44rpx;font-weight: 700;}
.bar_tab{width: 300rpx;display: flex;height: 60rpx;border-radius: 10rpx;border: 1px solid #f4f4f4;line-height: 60rpx;
position: relative;font-size: 24rpx;color: #333;}
.bar_tab>view{width: 50%;height: 100%;text-align: center;position: relative;z-index: 1;transition: all 0.3s;}
.bar_tab>view:nth-child(1){color: #fff;}
.bar_tab>view:nth-child(3){position: absolute;left: 0;top: 0;background: #0081ff;border-radius: 10rpx;z-index: 0;}
.tab_cation>view:nth-child(1){color: #000;}
.tab_cation>view:nth-child(2){color: #fff;}
.tab_cation>view:nth-child(3){left: 50%;}
#myCanvas{position: absolute;left: 0;top: -71vh;z-index: -1;opacity: 0;}

.js

Page({
  data: {
    canvas_arr:{
      class="lazy" data-src:'',
      width:parseInt(wx.getSystemInfoSync().windowWidth * 0.9),
      height:parseInt(wx.getSystemInfoSync().windowHeight * 0.7),
      show:false
    },
    cutting:{
      height:0,
      max_y:0,
      show:false
    },
    canvas_y:0,
    color_status:false,
    canfile_image:'',
  },
  color_tap(e){
    var type = e?e.currentTarget.dataset.type:0
    if(type == 1){
      this.setData({
        color_status:!this.data.color_status
      })
    }else{
      this.data.canvas_arr.show = false
      this.data.canvas_arr.height = parseInt(wx.getSystemInfoSync().windowHeight * 0.7)
      this.data.cutting.show = false
      this.data.cutting.class="lazy" data-src = ''
      this.setData({
        canvas_arr:this.data.canvas_arr,
        cutting:this.data.cutting,
        canvas_y:0,
      })
    }
  },
  setTouchMove(e){return;},
  uploadtap(e){
    var that = this
    wx.chooseImage({
      count:1,
      success (res) {
        const tempFilePaths = res.tempFilePaths[0]
        that.data.canvas_arr.class="lazy" data-src = tempFilePaths
        wx.getImageInfo({
          class="lazy" data-src: tempFilePaths,
          success (res) {
            that.data.canvas_arr.show = true
            that.data.cutting.show = true
            that.data.cutting.height = that.data.canvas_arr.width / 2
            var height = parseInt(res.height / (res.width / that.data.canvas_arr.width))
            that.data.canvas_arr.height = height > that.data.canvas_arr.height ? that.data.canvas_arr.height : height
            that.data.cutting.max_y = that.data.canvas_arr.height - that.data.cutting.height
            that.setData({
              canvas_arr:that.data.canvas_arr
            })
            setTimeout(function () {
              that.setData({
                cutting:that.data.cutting
              })
            },500)
          }
        })
      }
    })
  },
  handletouchstart: function (e) {
    this.data.startY = e.touches[0].clientY
  },
  handletouchmove (e) {
    let currentY = e.touches[0].clientY - this.data.startY
    if(currentY > 0){
      this.setData({
        canvas_y:currentY > this.data.cutting.max_y?this.data.cutting.max_y:currentY,
      })
    }else{
      this.setData({
        canvas_y:0
      })
    }
  },
  ationimg(e){
    var that = this
    var canvas_img = wx.createCanvasContext('myCanvas')
    canvas_img.width = that.data.canvas_arr.width
    canvas_img.height = that.data.canvas_arr.height
    canvas_img.drawImage(that.data.canvas_arr.class="lazy" data-src,0,0,canvas_img.width,canvas_img.height)
    canvas_img.draw(true,(()=>{
      wx.canvasToTempFilePath({
        x: 0,
        y: that.data.canvas_y,
        width:that.data.canvas_arr.width,
        height:that.data.cutting.height,
        canvasId: 'myCanvas',
        success: function (res) {
          that.setData({
            canfile_image:res.tempFilePath
          })
          that.color_tap()
          wx.showToast({
            title: '裁剪成功~',
            icon: 'none',
            duration: 3000
          })
        }
      });
    }))
  },
})

功能主要针对轮播图片尺寸,不合适可自行修改比例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信小程序实现裁剪图片大小

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序如何实现裁剪图片大小

这篇文章主要介绍“微信小程序如何实现裁剪图片大小”,在日常操作中,相信很多人在微信小程序如何实现裁剪图片大小问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序如何实现裁剪图片大小”的疑惑有所帮助!接下来
2023-06-30

微信小程序实现图片裁剪功能

微信小程序实现图片裁剪功能随着微信小程序的快速发展,越来越多的开发者开始探索小程序的潜力。其中,图片处理功能是小程序中常见的需求之一。本文将介绍如何在微信小程序中实现图片裁剪功能,并提供具体的代码示例,帮助开发者快速实现这一功能。准备工作在
微信小程序实现图片裁剪功能
2023-11-21

微信小程序图片裁剪功能的实现

文章目录 图片上传与处理图片尺寸适配图片显示与裁剪框裁剪框的拖动与缩放增加canvas并裁剪图片保存图片到相册总结 在之前的博文中,已经介绍了如何使用在前端开发中,实现较方便自由的图片裁剪功能,可见博文: 如何一步步实现图片
2023-08-17

微信小程序如何实现照片裁剪

这篇文章主要讲解了“微信小程序如何实现照片裁剪”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现照片裁剪”吧!组件代码1.cut_photo.json{ "component
2023-06-30

微信小程序实现图片裁剪并上传功能

微信小程序实现图片裁剪并上传功能随着微信小程序的快速发展,越来越多的开发者开始关注微信小程序的开发技巧和功能实现。其中,图片裁剪并上传功能是一个常见的需求,本文将介绍如何在微信小程序中实现图片裁剪并上传的功能,并提供具体的代码示例。一、功能
微信小程序实现图片裁剪并上传功能
2023-11-21

实现微信小程序中的图片裁剪并保存功能

实现微信小程序中的图片裁剪并保存功能小程序已经逐渐成为人们生活中不可或缺的一部分,我们在使用小程序的过程中,经常会遇到需要对图片进行裁剪的情况。本文将介绍如何在微信小程序中实现图片裁剪并保存的功能。一、分析需求在开始开发之前,我们首先需要明
实现微信小程序中的图片裁剪并保存功能
2023-11-21

JavaScript如何实现小程序图片裁剪功能

这篇文章主要介绍“JavaScript如何实现小程序图片裁剪功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现小程序图片裁剪功能”文章能帮助大家解决问题。图片上传与处理要
2023-07-05

微信小程序如何实现图片双滑缩放大小

这篇文章主要介绍了微信小程序如何实现图片双滑缩放大小 ,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在做小程序开发的过程中,后端传来一张图片地图,需要实现双手指滑动,使图片缩
2023-06-26

实现微信小程序中的图片放大缩小效果

实现微信小程序中的图片放大缩小效果,需要具体代码示例在微信小程序中实现图片的放大缩小效果是一个常见需求,可以通过使用WXSS样式和WXSS样式来实现。下面将介绍具体的代码示例。1.在wxml文件中编写图片和相关的按钮组件:
实现微信小程序中的图片放大缩小效果
2023-11-21

微信小程序裁剪头像插件如何使用

这篇文章主要介绍“微信小程序裁剪头像插件如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序裁剪头像插件如何使用”文章能帮助大家解决问题。用户上传头像,需要裁剪成正方形,结合在网上找到裁
2023-06-30

基于RxPaparazzo实现图片裁剪、图片旋转、比例放大缩小功能

前言:基于RxPaparazzo的图片裁剪,图片旋转、比例放大|缩小。效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:1.Material Design(CardView+Coordinator
2023-05-31

编程热搜

目录