微信小程序canvas如何截取任意形狀

    這篇文章主要介紹微信小程序canvas如何截取任意形狀,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

    最近在研究拼圖驗(yàn)證碼實(shí)現(xiàn),需要對圖片的部分模塊進(jìn)行特殊形狀切割出一小塊,明白后原來是如此簡單,第一步就是將所有繪制的形狀用線勾出(直線、弧線、貝塞爾曲線都可以)形成閉環(huán),第二步就是切割繪制,第二步不麻煩,麻煩的只是第一步,需要一些計(jì)算,所以會(huì)在以后,盡力的多保存一些特殊形狀的方法。愛掏網(wǎng) - it200.com

    比如:

    微信小程序canvas如何截取任意形狀

    代碼

    drawPic(x,y,r){
    ??//?const?ctxBackground?=?wx.createCanvasContext('canvasBackground')
    ??const?ctxBackground?=?wx.createCanvasContext('canvasBackground')
    ??ctxBackground.save();
    ??//開始一個(gè)新的繪制路徑
    ??ctxBackground.beginPath();
    ??//設(shè)置路徑起點(diǎn)坐標(biāo)
    ??ctxBackground.moveTo(x,?y);
    ??ctxBackground.arcTo(x,?y?-?r,?x?+?r,?y?-?r,?r);
    ??ctxBackground.lineTo(x?+?2?*?r,?y?-?r);
    ??ctxBackground.arcTo(x?+?2?*?r,?y?-?2?*?r,?x?+?3?*?r,?y?-?2?*?r,?r);
    ??ctxBackground.arcTo(x?+?4?*?r,?y?-?2?*?r,?x?+?4?*?r,?y?-?r,?r);
    ??ctxBackground.lineTo(x?+?5?*?r,?y?-?r);
    ??ctxBackground.arcTo(x?+?6?*?r,?y?-?r,?x?+?6?*?r,?y,?r);
    ??ctxBackground.lineTo(x?+?6?*?r,?y?+?r);
    ??ctxBackground.arcTo(x?+?7?*?r,?y?+?r,?x?+?7?*?r,?y?+?2?*?r,?r);
    ??ctxBackground.arcTo(x?+?7?*?r,?y?+?3?*?r,?x?+?6?*?r,?y?+?3?*?r,?r);
    ??ctxBackground.lineTo(x?+?6?*?r,?y?+?4?*?r);
    ??ctxBackground.arcTo(x?+?6?*?r,?y?+?5?*?r,?x?+?5?*?r,?y?+?5?*?r,?r);
    ??ctxBackground.lineTo(x?+?4?*?r,?y?+?5?*?r);
    ??ctxBackground.arcTo(x?+?4?*?r,?y?+?4?*?r,?x?+?3?*?r,?y?+?4?*?r,?r);
    ??ctxBackground.arcTo(x?+?2?*?r,?y?+?4?*?r,?x?+?2?*?r,?y?+?5?*?r,?r);
    ??ctxBackground.lineTo(x?+?r,?y?+?5?*?r);
    ??ctxBackground.arcTo(x,?y?+?5?*?r,?x,?y?+?4?*?r,?r);
    ??ctxBackground.lineTo(x,?y?+?3?*?r);
    ??ctxBackground.arcTo(x?+?r,?y?+?3?*?r,?x?+?r,?y?+?2?*?r,?r);
    ??ctxBackground.arcTo(x?+?r,?y?+?r,?x,?y?+?r,?r);
    ??ctxBackground.lineTo(x,?y);
    ??//先關(guān)閉繪制路徑。愛掏網(wǎng) - it200.com注意,此時(shí)將會(huì)使用直線連接當(dāng)前端點(diǎn)和起始端點(diǎn)。愛掏網(wǎng) - it200.com
    ??ctxBackground.closePath();
    ??ctxBackground.clip();
    ??ctxBackground.stroke();?//畫線輪廓
    ??wx.getImageInfo({
    ???src:?'cloud://normal-env/000060.jpg',
    ???success:?function?(res)?{
    ????ctxBackground.drawImage(res.path,?0,?0,?256,?191);
    ????ctxBackground.restore();
    ????ctxBackground.draw();
    ???}
    ??})
    ?}

    以上是“微信小程序canvas如何截取任意形狀”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注編程筆記行業(yè)資訊頻道!


    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 亚洲一区在线视频| 国产精品一区电影| 亚洲AV永久无码精品一区二区国产| 日韩毛片一区视频免费| 精品亚洲AV无码一区二区| 手机看片一区二区| 高清一区二区三区视频| 亚洲欧美日韩国产精品一区| 久久se精品动漫一区二区三区| 一区二区三区国模大胆| 国产在线不卡一区| 日韩在线一区二区三区视频| 国产精品久久一区二区三区| 日韩人妻精品一区二区三区视频| 精品一区二区三区免费观看| 538国产精品一区二区在线| 无码人妻一区二区三区av| 国产经典一区二区三区蜜芽| 国产99久久精品一区二区| 精品人妻系列无码一区二区三区 | 精品无码成人片一区二区98| 久久国产精品视频一区| 久久久91精品国产一区二区三区| 久久久久女教师免费一区| 久久se精品一区二区影院| 日韩精品无码一区二区三区四区| 亚洲午夜精品第一区二区8050| 精品国产免费一区二区三区 | 无码精品人妻一区二区三区免费看| 精品人体无码一区二区三区 | 尤物精品视频一区二区三区 | 夜色福利一区二区三区| 久久久久人妻一区精品色| 精品少妇人妻AV一区二区三区| 日韩一区二区在线视频| 国产伦精品一区二区三区不卡| 偷拍激情视频一区二区三区| 国模视频一区二区| 久久精品国产第一区二区| 夜色福利一区二区三区| 国产福利无码一区在线|