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

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

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

    比如:

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

    代碼

    drawPic(x,y,r){
    ??//?const?ctxBackground?=?wx.createCanvasContext('canvasBackground')
    ??const?ctxBackground?=?wx.createCanvasContext('canvasBackground')
    ??ctxBackground.save();
    ??//開始一個新的繪制路徑
    ??ctxBackground.beginPath();
    ??//設置路徑起點坐標
    ??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);
    ??//先關閉繪制路徑。愛掏網 - it200.com注意,此時將會使用直線連接當前端點和起始端點。愛掏網 - 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如何截取任意形狀”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注編程筆記行業資訊頻道!


    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 国产精品自在拍一区二区不卡| 天堂资源中文最新版在线一区| 夜夜爽一区二区三区精品| 日韩精品国产一区| 国产精品免费综合一区视频| 色综合视频一区二区三区44| 亚洲综合一区二区国产精品| 久久精品道一区二区三区| 亚洲一区在线观看视频| 精品无码国产一区二区三区51安| 亚洲AV成人精品一区二区三区| 免费高清av一区二区三区| 亚洲AV无码一区二区三区国产| 久久精品无码一区二区app| 伊人久久大香线蕉av一区| 免费无码一区二区三区| 免费一本色道久久一区| 无码精品人妻一区二区三区免费| 中文字幕一区日韩在线视频 | 无码丰满熟妇浪潮一区二区AV| 日韩精品一区二区三区中文3d| 中文字幕AV一区二区三区| 制服美女视频一区| 久久精品无码一区二区三区不卡| 国产婷婷色一区二区三区| 狠狠色婷婷久久一区二区三区| 视频在线一区二区三区| 国产一区二区三区在线| 国产婷婷色一区二区三区深爱网 | 午夜无码视频一区二区三区| 亚拍精品一区二区三区| 久久无码人妻一区二区三区午夜 | 理论亚洲区美一区二区三区 | 91国偷自产一区二区三区| 亚洲AV福利天堂一区二区三| 综合无码一区二区三区| 久久国产高清一区二区三区| 老鸭窝毛片一区二区三区| 99无码人妻一区二区三区免费| 色一乱一伦一图一区二区精品| 久久99精品波多结衣一区|