微信小程序中的canvas繪制圖片截圖,拿到的圖片會(huì)模糊?

需求是我在微信小程序中使用canvas把圖片繪制到圖中黑框區(qū)域,然后進(jìn)行編輯操作最后拿到編輯后的圖片,圖片肯定不能小因?yàn)槭且蛴〉揭路系?,但是用手機(jī)中黑框截圖出來(lái)的圖片肯定是有限的大小,當(dāng)我要截圖時(shí),我發(fā)現(xiàn)使用wx.canvasToTempFilePath()這個(gè)api截圖出來(lái)的圖設(shè)置指定長(zhǎng)寬就會(huì)糊掉,我在想一開(kāi)始繪制的時(shí)候就已經(jīng)把圖片已經(jīng)壓縮,再放大肯定會(huì)糊的,該怎么解決這個(gè)問(wèn)題?
答:你的圖片實(shí)際大小是大于canvas的大小的。
比如你的圖片是1200*800, 而你的canvas大小只有600*400。
當(dāng)你使用ctx.drawImage(src, 0, 0, 600, 400)后,你的圖片就被壓縮到了canvas的大小,就會(huì)造成截出來(lái)圖片適量下降。
方案1
準(zhǔn)備兩個(gè)canvas,一個(gè)繪制壓縮圖(600400),一個(gè)繪制原圖大小(1200800),截圖的時(shí)候從原圖canvas截取。
方案2
將canvas大小設(shè)為(1200*800),使用css將canvas縮放到適應(yīng)屏幕大小。
2、微信小程序邀請(qǐng)好友給獎(jiǎng)勵(lì),怎么去寫(xiě)這個(gè)能記錄是誰(shuí)通過(guò)點(diǎn)擊轉(zhuǎn)發(fā)的鏈接進(jìn)入到小程序的參數(shù)碼?
答:
1、生成的分享鏈接,帶上一級(jí)用戶的ID或者用戶名作為參數(shù)。
2、二級(jí)用戶點(diǎn)擊之后,將一級(jí)用戶ID參數(shù)種在COOKIE或者session里面,同時(shí)保存一條點(diǎn)擊記錄進(jìn)入數(shù)據(jù)庫(kù)。
3、后續(xù)二級(jí)用戶的下單,注冊(cè),等等操作,都從COOKIE判斷是否存在對(duì)應(yīng)一級(jí)ID,并進(jìn)行對(duì)應(yīng)的獎(jiǎng)勵(lì)操作。
3、小程序中為何無(wú)法獲取setData中的值
secondMenuAjax:function(){
var _this=this
wx.request({
url: 'xxxx', //僅為示例,并非真實(shí)的接口地址
header: {
'content-type': 'application/json' // 默認(rèn)值
},
success: function (res) {
// console.log(res.data)
// this.secondMenuData=res.data.data
_this.setData({
secondMenuData:res.data.data,
nowMenuData:res.data.data[0]
})
console.log(_this.secondMenuData)//undefined
}
})
我ajax請(qǐng)求中獲得了數(shù)據(jù)然后setData數(shù)據(jù),但是我再去console.log為什么是undefined。
答:console.log(_this.secondMenuData)改為 console.log(_this.data.secondMenuData)
4、Math.js如何引入到微信小程序?
微信小程序里面想引用Mathjs 做數(shù)學(xué)運(yùn)算,
發(fā)現(xiàn)小程序沒(méi)有window對(duì)象,沒(méi)法外鏈形式引入,于是將Math.js下載下來(lái),放進(jìn)utils文件夾里面

引到其他js

報(bào)錯(cuò)

這是 mathjs
可以npm node形式使用 按理來(lái)說(shuō)可以 在小程序里面用得 但是報(bào)錯(cuò)了 求解
答:
1.路勁對(duì)不對(duì)
2.有沒(méi)有小程序的export
3.原本的deinfe等判斷方法全都去掉
函數(shù)需要導(dǎo)出才能用:
/utils/test.js
function func() {
return 123
}
module.exports = {
func: func
}
引用:
/pages/index/index.js
var util = require("../../utils/test.js") //相對(duì)路徑