|
導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 本篇文章給大家帶來的內容是關于微信小程序中生成圖片的代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。 添加畫布首先,在小程序里進行繪圖操作需要用到<canvas>組件,步驟大致分為以下3個部分:一張大的背景圖,一段動態的文字(‘標題 用戶名 及其他信息’),以及一個小程序碼圖片。那我們就先在我們的wxml代碼中放入如下的<canvas>: <!--wxml代碼-->
<view style='width:100%;height:100%;' bindlongpress='saveInviteCard'>
<canvas canvas-id="shareCanvas" style="width:{{windowWidth}}px;height:{{windowHeight}}px" ></canvas>
</view>第三方函數引入 const util = require('../../utils/util.js')//util.js
var Promise = require('../components/bluebird.min.js')
module.exports = {
promisify: api => {
return (options, ...params) => {
return new Promise((resolve, reject) => {
const extras = {
success: resolve,
fail: reject
}
api({ ...options, ...extras }, ...params)
})
}
}
}bluebird.min.js大家可自己百度下載,源文件代碼太長,我這里就不復制粘貼了。 //獲取手機寬高
wx.getSystemInfo({
success: function (res) {
wc.put('phoneInfo', res)
}
});
var windowHeight = phoneInfo.windowHeight, windowWidth = phoneInfo.windowWidth
self.setData({
windowHeight: windowHeight,
windowWidth: windowWidth
})
//在這段代碼中,我們通過使用wx.getImageInfo這個API來下載一個網絡圖片到本地(并可獲取該圖片的尺寸等其他信息),然后調用ctx.drawImage方法將圖片繪制到畫布上,填滿畫布。
const wxGetImageInfo = util.promisify(wx.getImageInfo)
//繪制二維碼
Promise.all([
//背景圖
wxGetImageInfo({
src: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1536213812443&di=753a0a49acfd390fba9fd7884daafa5c&imgtype=0&src=http%3A%2F%2Fi5.hexunimg.cn%2F2016-08-10%2F185422031.jpg'
}),
//二維碼
wxGetImageInfo({
src: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1898297765,3486952215&fm=26&gp=0.jpg'
})
]).then(res => {
console.log(res)
if (res[0].errMsg == "getImageInfo:ok" && res[1].errMsg == "getImageInfo:ok"){
const ctx = wx.createCanvasContext('shareCanvas')
// 底圖
ctx.drawImage(res[0].path, 0, 0, windowWidth, windowHeight)
//寫入文字
ctx.setTextAlign('center') // 文字居中
ctx.setFillStyle('#f3a721') // 文字顏色:黑色
ctx.setFontSize(22) // 文字字號:22px
ctx.fillText("作者:墜夢—Eric", windowWidth / 2, windowHeight / 2)
// 小程序碼
const qrImgSize = 150
ctx.drawImage(res[1].path, (windowWidth - qrImgSize) / 2, windowHeight / 1.8, qrImgSize, qrImgSize)
ctx.stroke()
ctx.draw()
}else{
wx.showToast({
title: '邀請卡繪制失敗!',
image:'../../asset/images/warning.png'
})
}
})這樣,差不多我們的分享圖就生成好了。 長按圖片保存到系統相冊要把它保存進用戶的系統相冊中去,實現這個功能,我們主要靠 主要的流程就是先通過 //保存邀請卡
saveInviteCard:function(){
console.log('保存圖片')
const wxCanvasToTempFilePath = util.promisify(wx.canvasToTempFilePath)
const wxSaveImageToPhotosAlbum = util.promisify(wx.saveImageToPhotosAlbum)
wxCanvasToTempFilePath({
canvasId: 'shareCanvas'
}, this).then(res => {
return wxSaveImageToPhotosAlbum({
filePath: res.tempFilePath
})
}).then(res => {
wx.showToast({
title: '已保存到相冊'
})
})
}相關推薦: 以上就是微信小程序中生成圖片的代碼的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!