網站首頁 編程語言 正文
wxml 代碼:
js代碼
/**
* 生命周期函數--監聽頁面初次渲染完成
*/
onReady: function () {
this.drawCanvasPic();
},
previewImage: function () {
console.log(1);
wx.canvasToTempFilePath({
canvasId: 'myPicCanvas',
success: function (res) {
var tempFilePath = res.tempFilePath;
console.log(tempFilePath);
wx.previewImage({
current: tempFilePath, // 當前顯示圖片的http鏈接
urls: [tempFilePath] // 需要預覽的圖片http鏈接列表
})
},
fail: function (res) {
console.log(res);
}
});
},
drawCanvasPic: function () {
let ctx = wx.createCanvasContext('myPicCanvas');
let ctxW = 100;
let ctxH = 700;
// 默認像素比
// 屏幕系數比,以設計稿375*667(iphone7)為例
let XS = 375;
/* 繪制頭像 */
let avatarurl_width = 100; //繪制的頭像寬度
let avatarurl_heigth = 100; //繪制的頭像高度
let avatarurl_x = 50; //繪制的頭像在畫布上的位置
let avatarurl_y = 50; //繪制的頭像在畫布上的位置
ctx.save();
ctx.beginPath(); //開始繪制
//先畫個圓 前兩個參數確定了圓心 (x,y) 坐標 第三個參數是圓的半徑 四參數是繪圖方向 默認是false,即順時針
ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);
ctx.clip();//畫好了圓 剪切 原始畫布中剪切任意形狀和尺寸。一旦剪切了某個區域,則所有之后的繪圖都會被限制在被剪切的區域內 這也是我們要save上下文的原因
ctx.drawImage('https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2369419058,1797305489&fm=27&gp=0.jpg', avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth); // 推進去圖片,必須是https圖片
ctx.restore(); //恢復之前保存的繪圖上下文 恢復之前保存的繪圖上下午即狀態 還可以繼續繪制
ctx.draw(); //可將之前在繪圖上下文中的描述(路徑、變形、樣式)畫到 canvas 中
},
savePic: function (e) {
console.log(111);
wx.canvasToTempFilePath({
canvasId: 'myPicCanvas',
success: function (res) {
console.log(res);
wx.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success(result) {
wx.showToast({
title: '圖片保存成功',
icon: 'success',
duration: 2000
})
}
})
}
})
},
?
原文鏈接:https://blog.csdn.net/qq_43649479/article/details/89518537
相關推薦
- 2023-02-23 Python實現隨機生成一個漢字的方法分享_python
- 2022-09-21 Python實現斐波那契數列的多種寫法總結_python
- 2022-07-20 基于Python操作Excel實戰案例
- 2022-07-12 Linux命令之美|linux使用tar誤解壓之后,如何刪除解壓后的文件
- 2022-08-29 .NET?Core項目使用swagger開發組件_實用技巧
- 2022-05-29 C#對XmlHelper幫助類操作Xml文檔的通用方法匯總_C#教程
- 2022-06-08 Flutter集成高德地圖并添加自定義Maker的實踐_Android
- 2022-05-06 nginx?負載均衡輪詢方式配置詳解_nginx
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支