在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

微信小程序圖片選擇區域裁剪完成方法

微信小程序圖片選擇區域裁剪完成方法

更新時間:2025-09-27 文章作者:未知 信息來源:網絡 閱讀次數:

微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
本篇文章主要介紹了微信小程序圖片選擇區域屏裁剪實現方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了微信小程序圖片選擇區域屏裁剪實現方法,分享給大家。具體如下:

效果圖

微信小程序圖片選擇區域裁剪實現方法

微信小程序圖片選擇區域裁剪實現方法

微信小程序圖片選擇區域裁剪實現方法

HTML代碼

<view class="index_all_box">
 <view class="imgCut_header">
 <view class="imgCut_header_l" bindtap='okCutImg'>開始裁剪</view>
 <view class="imgCut_header_m" bindtap='clickUpImg'>點擊上傳圖片</view>
 <view class="imgCut_header_r" bindtap='okBtn'>點擊確認</view>
 </view>
 <!-- 選擇裁剪模式 -->
 <view class="selectCutMode" wx:if='{{alreay}}'>
 <view class="selectCutMode_in {{cutType?'selectCutMode_in_act':''}}" bindtap='etcType'>
  等屏裁剪
 </view>
 <view class="selectCutMode_in {{!cutType?'selectCutMode_in_act':''}}" bindtap='areaType'>
  區域裁剪
 </view>
 </view>
 <view class="areaSelct_box" wx:if='{{!cutType && alreay}}'>
 <slider bindchange="areaChange" min="50" max="100" show-value value='{{propor}}'/>
 </view>
 <view class="cutImg_box" wx:if='{{!prienFlag}}'>
 <view class="cutImg_box_t">
  <image src="{{cutImgUrl}}" mode='widthFix'></image>
 </view>
 <view class="clickCutImg_txt" bindtap='againBtn'>重新裁剪</view>
 </view>
 <view class="allCavans" wx:if='{{prienFlag}}' style='width: {{canvasW}}px;height: {{canvasH}}px' >
 <canvas class='canvasSty' style='width: {{canvasW}}px;height: {{canvasH}}px' canvas-id='cutImg' disable-scroll='true' bindtouchmove='canvasMove'></canvas>
 <view class="allCavans_inbg" style='width: {{canvasW}}px;height:{{canvasH}}px; background: url({{img}});background-size: 100% 100%'></view>
 </view>
 
 
</view>

CSS代碼

.imgCut_header{
 padding: 30rpx;
 display: flex;
 justify-content: space-between;
 align-items: center;
 background: #000;
 color: #fff;
 font-size: 24rpx;
}
.allCavans{
 margin: 20rpx auto;
 position: relative;
}
.canvasSty{
 position: absolute;
}
.cutImg_box{
 width: 100%;
 
 border-bottom: 2rpx #f98700 solid;
 padding-bottom: 20rpx;
}
.cutImg_box .cutImg_box_t{
 width: 90%;
 margin: 20rpx auto;
}
.cutImg_box image{
 width: 100%;
}
.cutImg_box .cutImg_box_b{
 margin-top: 20rpx;
 width: 80%;
 height: 80rpx;
 line-height: 80rpx;
 background: #f98700;
 color: #fff;
 border-radius: 10rpx;
 text-align: center;
 margin:0rpx auto;
}
.selectCutMode{
 background: #fff;
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.selectCutMode .selectCutMode_in{
 width: 100%;
 text-align: center;
 background: #fff;
 color: #f98700;
 font-size: 24rpx;
 padding: 20rpx;
}
.selectCutMode .selectCutMode_in_act{
 background: #f98700;
 color: #fff;
 padding: 20rpx;
}
.areaSelct_box{
 width: 100%;
 display: flex;
 align-items: center;
 height: 50rpx;
 justify-content: center;
 margin-top: 20rpx;
}
.areaSelct_box slider{
 width: 80%;
}
.cutImg_box .clickCutImg_txt{
 width: 100%;
 text-align: center;
 height: 50rpx;
 font-size: 24rpx;
 line-height: 50rpx;
 color: #999;
}

JS代碼部分

初始加載帶入上一個頁面帶過來的參數路徑

onLoad: function (options) {
  var that = this;
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  var aa = 'https://pintuanqu.oss-cn-hangzhou.aliyuncs.com/Uploads/Picture/goodsShow/20171201/5a2125fc86566.png'<br />  //獲取當前屏幕寬度
  var phoneW = Number(util.nowPhoneWH()[0]*90)/100;
  var cutH = 150;
  wx.getImageInfo({
   src: aa,
   success: function (res) {
    var w = phoneW;
    var h = (phoneW/Number(res.width))*Number(res.height)
    ctx.save() 
    ctx.drawImage(aa, 0, 0, w, h)
    ctx.restore()
    ctx.setFillStyle('red')
    ctx.fillRect(0, 0, phoneW, cutH)
    ctx.draw()
    that.setData({
     canvasW:w,
     canvasH:h,
     img:aa,
     cutH:cutH
    })
   }
  })
 },

確定選擇區域開始裁剪

// 點擊確認裁剪圖片
 okCutImg:function(){
  var that = this;
  var canvasW = that.data.canvasW;
  var canvasH = that.data.canvasH;
  var nowCutW = that.data.cutType?canvasW:that.data.nowCutW;
  var nowCutH = that.data.cutType?that.data.cutH:that.data.nowCutH;
  var cutX = that.data.cutX;
  var cutY = that.data.cutY;
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(1)
  ctx.drawImage(that.data.img, 0, 0, canvasW, canvasH)
  ctx.draw()
  wx.canvasToTempFilePath({
   x: cutX,
   y: cutY,
   width: nowCutW,
   height: nowCutH,
   destWidth: nowCutW,
   destHeight: nowCutH,
   canvasId: 'cutImg',
   success: function(res) {
    var aa = res.tempFilePath
    that.setData({
     cutImgUrl:aa,
     prienFlag:false,
     alreay:false
    })
   } 
  })
 },

紅框根據手指移動方法

// 點擊紅框開始移動
 canvasMove:function(e){
  var that = this;
  var canvasW = that.data.canvasW;
  var canvasH = that.data.canvasH;
  var nowCutW = that.data.cutType?canvasW:that.data.nowCutW;
  var nowCutH = that.data.cutType?that.data.cutH:that.data.nowCutH
  var touches = e.touches[0];  
  var x = touches.x;
  var y = touches.y-(Number(nowCutH)/2);
  that.data.cutType?x=0:x=x-(Number(nowCutW)/2);
  that.setData({
   cutX:x,
   cutY:y
  })
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  ctx.drawImage(that.data.img, 0, 0, canvasW, canvasH)
  ctx.setFillStyle('red')
  ctx.fillRect(x, y, nowCutW, nowCutH)
  ctx.draw()
 },

上方兩個選擇裁剪方式的按鈕

等屏裁剪

//等屏裁剪
 etcType:function(){
  var that = this;
  var propor = 100;
  var canvasW = that.data.canvasW;
  var canvasH = that.data.canvasH;
  var cutH = that.data.cutH;
  var nowCutW = (Number(canvasW)*propor)/100
  var nowCutH = (Number(cutH)*propor)/100
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  ctx.drawImage(that.data.img, 0, 0, canvasW, canvasH)
  ctx.setFillStyle('red')
  ctx.fillRect(0, 0, nowCutW, nowCutH)
  ctx.draw()
  that.setData({
   nowCutW:nowCutW,
   nowCutH:nowCutH,
   cutType:true
  })
 },

局域裁剪

areaType:function(){
  var that = this;
  var propor = that.data.propor;
  var canvasW = that.data.canvasW;
  var canvasH = that.data.canvasH;
  var cutH = that.data.cutH;
  var nowCutW = (Number(canvasW)*propor)/100
  var nowCutH = (Number(cutH)*propor)/100
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  ctx.drawImage(that.data.img, 0, 0, canvasW, canvasH)
  ctx.setFillStyle('red')
  ctx.fillRect(0,0, nowCutW, nowCutH)
  ctx.draw()
  that.setData({
   nowCutW:nowCutW,
   nowCutH:nowCutH,
   cutType:false
  })
 },

局域裁剪上方的滑動選擇紅框根據寬度等比例縮放

areaChange:function(e){
  var that = this;
  var propor = e.detail.value;
  var canvasW = that.data.canvasW;
  var canvasH = that.data.canvasH;
  var cutH = that.data.cutH;
  var nowCutW = (Number(canvasW)*propor)/100
  var nowCutH = (Number(cutH)*propor)/100
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  ctx.drawImage(that.data.img, 0, 0, canvasW, canvasH)
  ctx.setFillStyle('red')
  ctx.fillRect(that.data.cutX||0, that.data.cutY||0,nowCutW, nowCutH)
  ctx.draw()
  that.setData({
   nowCutW:nowCutW,
   nowCutH:nowCutH,
   propor:propor
  })
 },

重新裁剪回到初始選擇圖片的頁面

// 重新裁剪
 againBtn:function(){
  var that = this;
  var data = that.data
  this.setData({
   prienFlag:true,
   alreay:true
  })
  const ctx = wx.createCanvasContext('cutImg');
  ctx.setGlobalAlpha(0.4)
  ctx.drawImage(data.img, 0, 0, data.canvasW, data.canvasH)
  ctx.setFillStyle('red')
  ctx.fillRect(that.data.cutX||0, that.data.cutY||0, data.nowCutW||data.canvasW, data.nowCutH||data.cutH)
  ctx.draw()
 },

現在IOS還有個坑就是裁剪不了,官方正在修復不知道什么時候好

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

微信小程序多張圖片上傳功能的實現

微信小程序實現登錄頁云層漂浮的動畫效果

以上就是微信小程序圖片選擇區域裁剪實現方法的詳細內容,更多請關注php中文網其它相關文章!


小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产精品333| 久久久久久久久久久视频| 欧美黑人经典片免费观看| 手机在线免费观看毛片| 日韩欧美国产综合在线| 日韩欧美猛交xxxxx无码| 久久久久久综合网| 九一精品久久久| 免费成人黄色大片| 黄色a级三级三级三级| 911福利视频| 久久久久久久久久福利| 99久久久无码国产精品6| 黄色高清无遮挡| 国产精品videossex国产高清| 美女黄色免费看| 霍思燕三级露全乳照| 四季av一区二区| 欧美性受xxxx黑人猛交88| 国产精品无码一区二区在线| 国产精品免费入口| 裸体裸乳免费看| 欧美三级一级片| 国产乱人伦精品一区二区三区| 中国老女人av| 九色91popny| 99er在线视频| 性鲍视频在线观看| 国产精品免费入口| 永久免费看av| 亚洲成色www.777999| a级黄色一级片| 麻豆三级在线观看| 操人视频免费看| 99中文字幕在线| 向日葵污视频在线观看| 玩弄中年熟妇正在播放| 成年人视频网站免费| 亚洲AV无码成人精品一区| 色噜噜狠狠一区二区| 免费激情视频在线观看| 久久综合久久色| 色悠悠久久综合网| 国产又猛又黄的视频| 久草在在线视频| 五月天婷婷亚洲| 国产精品嫩草影院8vv8 | 日韩精品视频一区二区在线观看| 懂色av粉嫩av蜜臀av| 成人在线免费观看网址| 99精品人妻少妇一区二区| a√天堂在线观看| 色戒在线免费观看| 欧美一级免费在线| 浮妇高潮喷白浆视频| 日日碰狠狠躁久久躁婷婷| 中文字幕第80页| 成人在线视频一区二区三区| 免费无遮挡无码永久视频| 高清一区在线观看| 日韩精品免费一区| 亚洲天堂2018av| 欧美变态另类刺激| 国风产精品一区二区| 一道本视频在线观看| 久久久一二三四| 亚洲视频在线观看一区二区三区| 大地资源网在线观看免费官网| 日本成人黄色网| 日韩精品一区二区在线视频 | 久久婷婷中文字幕| 日韩伦理在线免费观看| 黄色一级片网址| 色戒在线免费观看| 国产wwwxx| 中文字幕视频三区| 亚洲国产精品女人| 亚洲第一精品区| 国产一级不卡视频| 成年人午夜视频在线观看| 国产精品久久a| 另类小说第一页| 国产四区在线观看| 精品一区二区三区无码视频| 欧美亚洲日本在线观看| 国产69精品久久久久999小说| 日日橹狠狠爱欧美超碰| 在线免费观看视频黄| 久久人人爽av| av网站在线不卡| 九九热精品国产| 人人爽人人av| 亚洲 中文字幕 日韩 无码| 一本久道高清无码视频| a级片一区二区| 成人免费观看在线| 欧美美女一级片| 成人手机视频在线| 国产欧美精品aaaaaa片| 日本久久高清视频| 99视频精品全部免费看| 日本一二三四区视频| 国产精品99久久久久久大便| 午夜影院免费观看视频| 97中文字幕在线| 怡红院亚洲色图| 日韩在线一区视频| 国产中文字幕乱人伦在线观看| 国内自拍在线观看| 视色,视色影院,视色影库,视色网| 免费极品av一视觉盛宴| 男女视频在线看| 激情婷婷综合网| 成年在线观看视频| 国产欧美一区二| 国产精品99久久免费黑人人妻| 久久久久久久久久毛片| 97超碰青青草| 亚洲中文字幕无码av永久| 九九九九九九九九| 久久婷婷国产精品| 亚洲人成色77777| 男人日女人bb视频| 精品无码一区二区三区爱欲| 9色视频在线观看| 大桥未久一区二区三区| 黑人巨大国产9丨视频| 亚洲高清在线不卡| 国产av不卡一区二区| 日韩中文在线字幕| 欧美久久久久久久久久久久久| 欧美精品一区二区性色a+v| 国产一区 在线播放| cao在线观看| 成年人视频在线免费| 中文字幕天天干| 日本一本中文字幕| 久久黄色免费看| 日本熟妇人妻xxxx| 最新中文字幕免费视频| 色姑娘综合天天| 少妇人妻在线视频| 日本美女久久久| 亚洲综合日韩欧美| 国产成人久久婷婷精品流白浆| 97超碰成人在线| 国产特级黄色大片| 色姑娘综合天天| 国产在线观看中文字幕| 777777av| 欧美少妇一区二区三区| 在线观看免费黄色片| 亚洲欧美在线精品| 亚洲最大天堂网| 亚洲 激情 在线| 男女视频在线观看网站| 五月天婷婷在线观看视频| 国产无遮挡猛进猛出免费软件| 国产在线观看中文字幕| aaa一级黄色片| 视频一区二区视频| 老子影院午夜伦不卡大全| 天天想你在线观看完整版电影免费| 国产精品视频一区二区三区四区五区| 熟女视频一区二区三区| 国产91在线亚洲| 日本三级免费观看| 亚洲欧美自拍另类日韩| 中文字幕22页| 警花观音坐莲激情销魂小说| av一区二区三区免费观看| 国产午夜精品视频一区二区三区| 丁香花在线影院观看在线播放| 18岁网站在线观看| 中文字幕亚洲乱码| 无码粉嫩虎白一线天在线观看| 成年人网站大全| 中文字幕第66页| 欧美伦理片在线看| 国产美女永久无遮挡| 国产5g成人5g天天爽| 乱妇乱女熟妇熟女网站| 最新视频 - x88av| www.这里只有精品| 麻豆av免费在线| 国产aaa一级片| 久在线观看视频| 国产精品成人久久电影| 久久99国产精品一区| 五月六月丁香婷婷| 激情视频免费网站| 91丨九色丨蝌蚪| 超碰超碰在线观看| 欧美性受黑人性爽| 三级在线免费观看| www插插插无码视频网站| 黄色激情在线视频| 午夜肉伦伦影院| 日本 片 成人 在线| 一区二区三区一级片|