知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
微信小程序生成圖片 分享朋友圈 wepy 生成分享圖
發(fā)表時(shí)間:2020-9-23
發(fā)布人:葵宇科技
瀏覽次數(shù):69
阿里云學(xué)生服務(wù)器 低至10元一月
需求:
點(diǎn)邀請(qǐng)按鈕后,請(qǐng)求接口拿到base64格式的二維碼,生成圖片并且支持長(zhǎng)按保存。
工具:
使用小程序wx.canvasToTempFilePath,以及wx.getFileSystemManager、wx.canvasToTempFilePath
html:需要實(shí)現(xiàn)長(zhǎng)按保存,所以加了一個(gè)圖片,透明度設(shè)置為0。并且開(kāi)啟長(zhǎng)按保存功能(小程序image屬性)
<div class="inviteshare" >
<canvas canvas-id="shareCanvas" class="inviteshare-canvas" style="width:750rpx;height:1074rpx"></canvas>
<img show-menu-by-longpress v-if="canvasIMG" :src="canvasIMG" class="inviteshare-img"/>
<p class="inviteshare-text">長(zhǎng)按可保存圖片到系統(tǒng)相冊(cè)哦~</p>
</div>
css:
page{
background: #FFFAF1;
}
.inviteshare{
&-inviteshare{
display: block;
margin: 0 auto;
}
&-text{
font-size: 28rpx;
font-weight: 400;
color: #FFA970;
text-align: center;
margin-top: 32rpx;
}
&-img{
position: absolute;
top: 0;
left: 0;
right: 0;
margin: 0 auto;
width: 100%;
opacity: 0;
z-index: 1;
height: 1074rpx;
}
}
js:onshow需要執(zhí)行drawShareCanvas函數(shù)
drawShareCanvas: function () {
let self = this;
var rpx = 1
wx.getSystemInfo({
success (res) {
rpx = res.windowWidth / 375
}
})
wx.getImageInfo({
src: self.tempFilePaths,
success (res) {
// 隱藏背景圖loading
wx.hideLoading()
const ctx = wx.createCanvasContext('shareCanvas')
// 繪制背景圖
ctx.scale(0.5, 0.5)
ctx.drawImage(self.tempFilePaths, 0, 0, 750 * rpx, 1074 * rpx)
// 小程序碼
const qrImgSize = 200 * rpx
ctx.drawImage(self.codeImg, 275 * rpx, 609 * rpx, qrImgSize, qrImgSize)
ctx.stroke()
// 繪制其它
ctx.draw()
// 下一步?=> 保存圖片到相冊(cè)
setTimeout(() => {
self.saveAlbum()
}, 200)
tip.toast('長(zhǎng)按可保存到系統(tǒng)相冊(cè)哦~', '', 'none');
},
fail () {
wx.showToast({
title: '生成失敗',
icon: 'none'
})
}
})
}
這個(gè)函數(shù)會(huì)從canvas轉(zhuǎn)為圖片
saveAlbum() {
var that = this
wx.canvasToTempFilePath({
x: 0,
y: 0,
canvasId: 'shareCanvas',
success: function (res) {
that.canvasIMG = res.tempFilePath
},
fail(err) {
console.log(err)
}
}, that)
},
這個(gè)函數(shù)將base64轉(zhuǎn)為網(wǎng)絡(luò)圖片
// 將base64圖片轉(zhuǎn)網(wǎng)絡(luò)圖片
getBasetoImg(code) {
/* code是指圖片base64格式數(shù)據(jù) */
// 聲明文件系統(tǒng)
return new Promise((resolve, reject) => {
const fs = wx.getFileSystemManager();
const FILE_BASE_NAME = 'tmp_base64src'; // 自定義文件名
const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(code) || [];
if (!format) {
return (new Error('ERROR_BASE64SRC_PARSE'));
}
const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
const buffer = wx.base64ToArrayBuffer(bodyData);
fs.writeFile({
filePath,
data: buffer,
encoding: 'binary',
success() {
resolve(filePath);
},
fail() {
reject()
}
});
})
},
開(kāi)發(fā)小程序過(guò)程中遇到問(wèn)題,請(qǐng)參考:http://vonasort.com/4j8W
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站搭建
- 網(wǎng)站建設(shè)服務(wù)
- 百度排名
- 汽車回收管理
- 云南軟件設(shè)計(jì)
- 網(wǎng)站建設(shè)方案 doc
- 網(wǎng)站開(kāi)發(fā)哪家好
- 云南小程序公司
- 網(wǎng)絡(luò)公司
- 網(wǎng)站建設(shè)
- 海報(bào)插件
- 微信分銷
- 網(wǎng)站建設(shè)專家
- 云南做軟件
- 百度小程序開(kāi)發(fā)公司
- 網(wǎng)站建設(shè)靠譜公司
- 紅河小程序開(kāi)發(fā)
- 小程序用戶登錄
- 英文網(wǎng)站建設(shè)公司
- 開(kāi)發(fā)微信小程序
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 網(wǎng)站建設(shè)方法
- 云南網(wǎng)站建設(shè)哪家好
- 云南軟件定制
- 日歷組件
- 云南衛(wèi)視小程序
- 昆明小程序設(shè)計(jì)
- 網(wǎng)站建設(shè)首選公司
- 云南建站公司
- 前端開(kāi)發(fā)