婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 微信小程序“圣誕帽”的實現思路詳解

微信小程序“圣誕帽”的實現思路詳解

熱門標簽:當涂高德地圖標注 四川點撥外呼系統 鎮江智能外呼系統有效果嗎 電銷機器人電話用什么卡 成都智能外呼系統平臺 黃島區地圖標注 云南大理400電話申請官方 江蘇智能電銷機器人哪家好 南寧點撥外呼系統哪家公司做的好

這兩天朋友圈被“圣誕帽”刷屏,這個小程序連微信官方都出來辟謠了,又一個現象級的玩意兒。從產品角度而言無疑是非常成功,但從技術角度而言是確實習以為常,創意很重要!簡單說一下思路:獲取頭像,把頭像畫在Canvas里面,接著往Canvas里畫帽子,調整帽子的參數(位置、大小、旋轉),最后保存為圖片。

先來看看效果

 

思路

1.獲取用戶頭像

wx.getUserInfo({
    success: function(res) {
        var userInfo = res.userInfo
        var avatarUrl = userInfo.avatarUrl
  }
})

這里有個問題需要注意,canvas不支持網絡圖片,上面獲取的只是頭像圖片地址,所以在這里要把圖片下載到微信的臨時目錄。代碼如下:

wx.downloadFile({   
    url: userInfo.avatarUrl, 
    success: function (res) {    
        if (res.statusCode === 200) {      
            avatarUrl = res.tempFilePath //這里的地址是指向本地圖片 
        }     
    }  
})

獲取頭像這一步用的是微信現成的API 比較方便。

2.繪制用戶頭像

此處封裝了常用的方法,下方avatarImg.w和avatarImg.h是指頭像的大小。

drawAvatar: function (img) {
    ctx.drawImage(img, 0, 0, avatarImg.w, avatarImg.h)
}

繪制圖片使用drawImage函數

3.繪制帽子

繪制帽子之前,我定義了一個對象object來保存帽子的參數

var hat = { 
    url: "../res/hat01.png", 
    w: 40,  
    h: 40,  
    x: 100, 
    y: 100, 
    b: 1,//縮放的倍率
    rotate: 0//旋轉的角度
}

接下來開始繪制帽子

drawHat: function (hat) { 
    ctx.translate(hat.x, hat.y) 
    ctx.scale(hat.b, hat.b) 
    ctx.rotate(hat.rotate * Math.PI / 180) 
    ctx.drawImage(hat.url, -hat.w / 2, -hat.h / 2, hat.w, hat.h) 
}

這里要稍微解釋下,是以帽子的中心點為原點進行縮放、旋轉

ctx.translate(hat.x, hat.y) //translate是將畫布的中心點移動到指定坐標處

此時的原點已經從(0,0)移動到(x,y),也就是帽子的中心點,帽子長的二分之一和寬的二分之一交匯處。

ctx.drawImage(hat.url, -hat.w / 2, -hat.h / 2, hat.w, hat.h)

畫帽子的關鍵是把x,y 移動到原點之外,示意圖如下:

 

4.改變帽子的參數

移動帽子:

moveHat: function (e) { 
     hat.x = e.touches[0].x
     hat.y = e.touches[0].y 
     that.drawA() 
 }

旋轉帽子:

rotateHat: function (e) {  
     hat.rotate = e.detail.value    //這一塊偷懶了,用slider組件 ,滑動取值
     that.drawA() 
 }

縮放帽子:

scaleHat: function (e) {  
     hat.b = e.detail.value   
     hat.w = 40 * hat.b    
     hat.h = 40 * hat.b    
     that.drawA()    ////此處用slider組件 ,滑動取值 
}

改變帽子樣式:

changeHat: function (e) {
    hat.url = e.currentTarget.dataset.url  //改變帽子的樣式   
    that.drawA() 
}

這幾個方法中都有drawA(),這主要是每一次移動、旋轉、縮放、改變參數時重繪畫布。

5.Canvas導出圖片

微信官方有提供相應API

saveToPhoto: function () {
    wx.canvasToTempFilePath({  
        x: 0,
        y: 0,
        width: 240,
        height: 240,
        destWidth: 240,
        destHeight: 240,
        canvasId: 'ctx',
        success: function (res) {
            //canvas轉圖片成功回調
        }
    })
}

最后保存到相冊

wx.saveImageToPhotosAlbum({
    filePath: res.tempFilePath,
}) 
wx.showToast({title: '保存成功'})

總結

以上所述是小編給大家介紹的微信小程序“圣誕帽”的實現思路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

標簽:廣西 酒泉 西寧 咸寧 南京 十堰 淮安 佳木斯

巨人網絡通訊聲明:本文標題《微信小程序“圣誕帽”的實現思路詳解》,本文關鍵詞  微信,小,程序,圣誕帽,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《微信小程序“圣誕帽”的實現思路詳解》相關的同類信息!
  • 本頁收集關于微信小程序“圣誕帽”的實現思路詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    2019国产精品| 日韩成人午夜精品| 国产激情一区二区三区四区 | 国产三级欧美三级日产三级99 | 欧美一卡二卡三卡| 欧美久久久影院| 日韩激情中文字幕| 久久亚洲精品小早川怜子| caoporm超碰国产精品| 日韩一区精品视频| 国产喷白浆一区二区三区| 欧美探花视频资源| 风流少妇一区二区| 99热在这里有精品免费| 99九九99九九九视频精品| 日本成人在线不卡视频| 成人欧美一区二区三区视频网页| 91精品在线一区二区| 91免费看`日韩一区二区| 久久99久久久久久久久久久| 亚洲一区在线观看免费| 国产精品伦一区| 国产精品无圣光一区二区| 日韩一区二区免费在线电影| 91在线观看污| 国产福利一区在线| 久久99精品国产.久久久久| 一区二区三区精品在线观看| 欧美精品久久久久久久久老牛影院| 国产一区二区按摩在线观看| 理论片日本一区| 日韩va亚洲va欧美va久久| 欧美羞羞免费网站| av在线播放不卡| 国产传媒一区在线| 韩国一区二区三区| 另类调教123区| 蜜桃av一区二区在线观看| 日本中文在线一区| 婷婷综合另类小说色区| 亚洲成人综合网站| 蓝色福利精品导航| 欧美一区二区女人| 91.xcao| 欧美视频自拍偷拍| 国产精品1024| 国产成人午夜高潮毛片| 久久av老司机精品网站导航| 久久精品理论片| 麻豆成人免费电影| 狠狠色狠狠色综合系列| 日本亚洲天堂网| 视频一区视频二区在线观看| 午夜欧美在线一二页| 性做久久久久久| 五月天激情小说综合| 久久精品久久99精品久久| 久久97超碰国产精品超碰| 91精品国产综合久久久久久| 成人av影院在线| 成人免费的视频| 中文字幕一区二区在线播放| 亚洲欧洲av在线| 亚洲国产日产av| 青青国产91久久久久久| 国产一区二区调教| 9久草视频在线视频精品| 欧美一区中文字幕| 亚洲免费观看在线视频| 国产很黄免费观看久久| 亚洲三级小视频| 久久综合色8888| 青青草国产精品亚洲专区无| 91美女片黄在线| 国产欧美日韩一区二区三区在线观看| 日韩高清在线一区| 欧美午夜精品一区| 最新热久久免费视频| 日本特黄久久久高潮| 色八戒一区二区三区| 国产精品理论片在线观看| 久久99久久久久久久久久久| 性做久久久久久久免费看| 久久综合国产精品| 日本高清不卡在线观看| 亚洲欧洲日产国产综合网| 精品少妇一区二区三区在线视频| 一区视频在线播放| 亚洲精品国产第一综合99久久 | 不卡的av在线播放| 精品国产91亚洲一区二区三区婷婷 | 国产精品一二三区在线| 欧美精品 国产精品| 亚洲在线视频一区| 色哟哟亚洲精品| 亚洲精品中文在线观看| 99国产精品国产精品久久| 中文字幕在线免费不卡| 成人av在线网站| 中文字幕欧美一| 91网站视频在线观看| 亚洲视频 欧洲视频| 91毛片在线观看| 一区二区三区日韩精品视频| 欧美在线免费观看亚洲| 日韩影视精彩在线| 精品少妇一区二区| 国产成人午夜视频| 亚洲欧美另类久久久精品| 色综合欧美在线视频区| 亚洲电影你懂得| 蜜桃视频一区二区| 国产欧美一区二区精品忘忧草| 成人av电影在线播放| 亚洲伊人伊色伊影伊综合网| 欧美无乱码久久久免费午夜一区| 日韩精品免费视频人成| 国产午夜亚洲精品羞羞网站| 91麻豆.com| 美日韩一区二区三区| 中文字幕视频一区二区三区久| 91麻豆精品国产自产在线| 国产呦萝稀缺另类资源| 久久久久久久久久久久电影| av电影天堂一区二区在线| 亚洲一区在线视频| 欧美sm美女调教| 99这里只有久久精品视频| 天堂成人国产精品一区| 国产亚洲一区字幕| 欧美日韩高清一区二区三区| 国产制服丝袜一区| 亚洲免费电影在线| 精品免费视频.| 91福利国产成人精品照片| 美女www一区二区| 综合久久国产九一剧情麻豆| 91精品国产手机| 91偷拍与自偷拍精品| 国内欧美视频一区二区| 亚洲国产成人porn| 国产精品久久午夜夜伦鲁鲁| 欧美一区二区精品| 色欧美片视频在线观看| 国产一区视频导航| 日韩精品一卡二卡三卡四卡无卡| 99这里只有精品| 韩国欧美国产1区| 视频在线观看一区二区三区| 综合久久给合久久狠狠狠97色| 欧美成人vps| 欧美日韩国产天堂| 色综合久久综合网97色综合| 国产成人一级电影| 免费观看久久久4p| 亚洲超碰97人人做人人爱| 亚洲人精品午夜| 国产精品欧美一区喷水| 亚洲国产精品综合小说图片区| 国产成人免费视频精品含羞草妖精| 亚洲成a人片在线观看中文| 成人欧美一区二区三区黑人麻豆| 久久久国际精品| 欧美成人精品福利| 日韩精品中文字幕一区二区三区| 欧美日韩1区2区| 欧美日韩精品三区| 日韩午夜精品视频| 亚洲国产精品一区二区久久 | 337p粉嫩大胆噜噜噜噜噜91av | 狠狠狠色丁香婷婷综合激情| 丝袜诱惑制服诱惑色一区在线观看 | 一区二区在线免费观看| 久久日一线二线三线suv| 91精品福利在线一区二区三区| 在线视频综合导航| 91久久国产最好的精华液| 99久久精品免费看国产| 成人不卡免费av| 懂色av一区二区夜夜嗨| 国产福利一区二区三区视频| 国精品**一区二区三区在线蜜桃| 六月丁香综合在线视频| 久久精品国产久精国产爱| 麻豆视频一区二区| 成人av网在线| 一区二区三区四区不卡视频| 亚洲欧美日韩国产成人精品影院| 亚洲欧美一区二区三区国产精品 | 国产成人综合网站| 成人动漫一区二区三区| 色国产精品一区在线观看| 欧美人动与zoxxxx乱| 日韩欧美一区二区免费| 久久精品免视看| 亚洲色图色小说| 日日摸夜夜添夜夜添精品视频| 精品一区二区三区免费视频| 粉嫩在线一区二区三区视频| 97国产精品videossex|