微信小程序怎么使用帆布自适应屏幕画海报并保存图片功能

  介绍

这篇文章主要介绍微信小程序怎么使用帆布自适应屏幕画海报并保存图片功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

我们的在开发中常用的参考屏幕尺寸(iPhone6)为:375 * 667,

那么想要适应其他尺寸的屏幕时只需按照iPhone6的绘制大小按比例进行换算即可:

<强>获取系统屏幕尺寸

先利用wx。getSystemInfo(获取系统信息)的API获取屏幕宽度,然后除iPhone6的屏幕宽度,即可得到相对单位

//,在onLoad中调用   const  that =,   wx.getSystemInfo ({   ,成功:function  (res), {   console.log才能(res)   that.setData({才能   ,,,模型:res.model,   ,,,screen_width: res.windowWidth/375,   ,,screen_height: res.windowHeight   })才能   ,}   })

在绘制方法中将参数乘以相对单位即可实现自适应

这里的rpx是相对不同屏幕宽度的相对单位,测量出得实际宽度,就是实际测出的px像素值* rpx就可以了,之后无论实在iPhone5, iPhone6 iPhone7…都可以进行自适应。

这里的html也要动态的设置宽和高

& lt; canvas  canvas-id=癙osterCanvas",祝辞& lt;/canvas>   drawPoster () {   let 才能;ctx =, wx.createCanvasContext (& # 39; PosterCanvas& # 39;),,=this.data;   console.log才能(& # 39;手机型号& # 39;,+,that.model, & # 39;宽& # 39;375年+ that.screen_width * & # 39;高& # 39;+,that.screen_height)   let 才能;rpx =that.screen_width//这才能里的rpx是相对不同屏幕宽度的相对单位,实际的宽度测量,就是实际测出的px像素值* rpx就可以了,之后无论实在iPhone5, iPhone6 iPhone7…都可以进行自适应。   ctx.setFillStyle才能(& # 39;# 1 a1a1a& # 39;)   ctx.fillRect才能(0,0,rpx  *, 375年,that.screen_height  *, 1.21)   ctx.fillStyle =,才能“# E8CDAA";   ctx.setFontSize才能(29 * rpx)   时间=ctx.font 才能;& # 39;normal  400年,Source  Han  Sans  cn # 39;;   ctx.fillText才能(& # 39;Hi 朋友& # 39;,,133 * rpx, 66 * rpx)   ctx.fillText才能(& # 39;先领礼品再买车& # 39;,,84 * rpx,, 119 * rpx)   ctx.drawImage才能(& # 39;. ./. ./img/sell_index5.png& # 39;,, 26 * rpx, 185 * rpx,, 324 * rpx,, 314 * rpx)   ctx.drawImage才能(& # 39;. ./. ./img/post_car2x.png& # 39;,, 66, *, rpx,, 222, *, rpx,, 243, *, rpx,, 145, *, rpx)   ctx.setFontSize才能(16 * rpx)   时间=ctx.font 才能;& # 39;normal  400年,Source  Han  Sans  cn # 39;;   ctx.fillText才能(& # 39;长按扫描获取更多优惠& # 39;,,108 * rpx,, 545 * rpx)   ctx.drawImage才能(& # 39;. ./. ./img/code_icon2x.png& # 39;,, 68, *, rpx,, 575, *, rpx,, 79, *, rpx,, 79, *, rpx)   ctx.drawImage才能(& # 39;. ./. ./img/code2_icon2x.png& # 39;,, 229, *, rpx,, 575, *, rpx,, 79, *, rpx,, 79, *, rpx)   ctx.setStrokeStyle才能(& # 39;# 666666 & # 39;)   ctx.setLineWidth才能(1 * rpx)   ctx.lineTo才能(187 * rpx 602 * rpx)   ctx.lineTo才能(187 * rpx, 630 * rpx)   ctx.stroke才能()   ctx.fillStyle =,才能“# fff"   ctx.setFontSize才能(13,*,rpx)   ctx.fillText才能(& # 39;xxx科技汽车销售公司& # 39;,,119,*,rpx,, 663, *, rpx)   ctx.fillStyle =,才能“# 666666“;   ctx.fillText才能(& # 39;朝阳区·望京xxx科技大厦& # 39;,,109,*,rpx,, 689, *, rpx)   ctx.setFillStyle才能(& # 39;# fff& # 39;)   ctx.draw才能()   },

<强>保存到相册

很简单就是在画完图片之后的画回调函数里调用<代码> canvasToTempFilePath() 生产一个零时内存里的链接,然后在调用<代码> saveImageToPhotosAlbum()> ctx.draw(真的,,()=祝辞{   ,,,//,console.log(& # 39;画完了& # 39;)   ,,,wx.canvasToTempFilePath () {   ,,,,x:, 0,   ,,,,y,, 0,   ,,,,宽度:,rpx  *, 375年,   ,,,,身高:,that.screen_height  *, 1.21,   ,,,,canvasId:, & # 39; PosterCanvas& # 39;   ,,,,成功:,function  (res), {   ,,,,,//,console.log (res.tempFilePath);   ,,,,,wx.saveImageToPhotosAlbum ({   ,,,,,,filePath:, res.tempFilePath,   ,,,,,,成功:,(res),=祝辞,{   ,,,,,,,console.log (res)   ,,,,,,},   ,,,,,,失败:,(err),=祝辞,{,}   ,,,,,})      ,,,,}   ,,,}),   ,,})

拒绝授权后再次提醒授权的代码

mpvue.saveImageToPhotosAlbum ({   ,,,filePath:, __path,   ,,,成功(res), {   ,,,,mpvue.showToast ({   ,,,,标题:,& # 39;保存成功& # 39;,   ,,,,图标:,& # 39;成功# 39;   ,,,,时间:,800年,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

微信小程序怎么使用帆布自适应屏幕画海报并保存图片功能