微信小程序制作海报并将其分享给朋友圈如何实现
2019-07-31 09:44:30 来源:沈阳小程序开发 作者:沈阳软件开发
小程序制作海报可以直接上传一些小程序图片,这里小编为大家介绍如何制作海报并通过小程序分享给朋友圈?
添加画布
首先,小程序中的绘图操作需要使用组件,然后我们首先将以下内容放在我们的wxml代码中:
这样我们就有了600x900的绘图区域。然后,我们将开始编写JS代码以在此画布上进行绘制。
步骤1:绘制背景图
通过观察由《长城你造不造》合成的共享图,我们可以分析它的构成主要有以下三个部分:一个大的背景图像,一个动态文本(xxxx称你为“加入砖块修复长城”) ,以及小程序代码图片。
然后我们将首先找到一张用作背景图片的图片,并在画布上绘制。代码如下:
Const wxGetImageInfo=promisify(wx.getImageInfo)
wxGetImageInfo({
Src:'https://some-domain/bg.png'
})。然后(res=> {
Const ctx=wx.createCanvasContext('shareCanvas')
ctx.drawImage(res.path,0,0,600,900)
Ctx.draw()
})
在此代码中,我们使用wx.getImageInfo API将Web图像下载到本地(并获取其他信息,如图像的大小),然后调用ctx.drawImage方法将图像绘制到画布上并填充帆布。
步骤2:绘制文字
接下来,让我们继续在画布上绘制一段文字。通常,用于这种宣传的共享图对于文本描述是必不可少的,并且可以是根据场景的不同内容(例如文章的作者或文章)生成的动态信息。标题和内容。
我们下一次尝试在画布上添加一些文本:“作者:一磅代码”,或者在代码的前面部分继续编写:
Const wxGetImageInfo=promisify(wx.getImageInfo)
wxGetImageInfo({
Src:'https://some-domain/bg.png'
})。然后(res=> {
Const ctx=wx.createCanvasContext('shareCanvas')
//底图
ctx.drawImage(res.path,0,0,600,900)
//作者姓名
ctx.setTextAlign('center')//文本居中
ctx.setFillStyle('#000000')//文字颜色:黑色
ctx.setFontSize(22)//文字大小:22px
ctx.fillText(“OF:pound Code”,600/2/2)
Ctx.stroke()
Ctx.draw()
})
由于画布上的绘图文本不会自动换行,因此如果要绘制长文本,可以考虑限制一行中的单词数,并将长文本拆分为多行以进行绘制。
步骤3:绘制小程序码
最后,我们在画布的末尾添加一个小程序代码,它可以是静态小程序代码,或者为每篇文章动态生成的小程序代码(参考本文的《微信小程序之生成自定义参数小程序二维码》),无论如何,这个小程序代码也是一个图片,所以绘图方法类似于绘制基本图片。最终代码如下所示:
Const wxGetImageInfo=promisify(wx.getImageInfo)
Promise.all([
wxGetImageInfo({
Src:'https://some-domain.com/background.png'
}),
wxGetImageInfo({
Src:'https://some-domain.com/api/generate/qrcode'
})
])。然后(res=> {
Const ctx=wx.createCanvasContext('shareCanvas')
//底图
ctx.drawImage(res [0] .path,0,0,600,900)
//作者姓名
ctx.setTextAlign('center')//文本居中
ctx.setFillStyle('#000000')//文字颜色:黑色
ctx.setFontSize(22)//文字大小:22px
ctx.fillText(“OF:pound Code”,600/2/2)
//小程序代码
Const qrImgSize=180
ctx.drawImage(res [1] .path,(600 - qrImgSize)/2,530,qrImgSize,qrImgSize)
Ctx.stroke()
Ctx.draw()
})
通过这种方式,几乎可以生成我们的共享映射。
保存到系统相册
接下来,我们要将其保存到用户的系统相册中,为实现此功能,我们主要依靠两个API wx.canvasToTempFilePath和wx.saveImageToPhotosAlbum。
主要过程是首先通过wx.canvasToTempFilePath生成临时文件,然后通过wx.saveImageToPhotosAlbum将其保存到系统相册。
Const wxCanvasToTempFilePath=promisify(wx.canvasToTempFilePath)
Const wxSaveImageToPhotosAlbum=promisify(wx.saveImageToPhotosAlbum)
wxCanvasToTempFilePath({
canvasId:'ShareCanvas'
},这).then(res=> {{p>
返回wxSaveImageToPhotosAlbum({
filePath: res.tempFilePath
})
})。然后(res=> {
wx.showToast({
标题:'保存到专辑'
})
})
promise.util.js如下:
[javascript]查看普通副本
/**
*将wx回调API转换为启用Promise的表单
*/
Module.exports={
Promisify: api=> {
返回(选项,参数)=> {
返回新的Promise((解决,拒绝)=> {
Const extras={
成功:解决,
失败:拒绝
}
Api({. options, extras}, params)
})
}
}
}
< 汇海(www.hvihi.com)是国内知名的商城系统和商城网站建设提供商,其中汇海技术小程序系统提供小程序商城开发,小程序配送系统,微分配系统,商城系统,电子商务网站建设, 微信发行系统,小程序商城及其他多端商场和电子商务行业解决方案>
确认:这个文件和图像源网络编辑器的网站部分,如果有侵权及时通信删除。 汇海hvihi.com网站原创文章,请注明出处。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。
上一篇:
小程序将成为微信手中最致命的武器?
下一篇:很抱歉没有了