知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
[項目采坑記錄][canvas][camera] 微信小程序逐幀上傳
發(fā)表時間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):210
項目需求:在前端使用camera
組件持續(xù)掃描,將捕捉到的幀上傳到后端進行算法識別判斷,并返回判斷結(jié)果。若結(jié)果為“成功”,則將捕捉到的正確幀顯示在屏幕上。
嘗試
wx.onCameraFrame(frame=>{
//frame.width
//frame.height
//frame.data
})
wx.onCameraFrame
API接受一個回調(diào)函數(shù),返回frame的寬高和frame的圖像編碼(ArrayBuffer格式)
嘗試(一)
經(jīng)過查找,wx.arrayBufferToBase64
API,可以實現(xiàn)arraybuffer到Base64的轉(zhuǎn)換,但實際使用的過程中發(fā)現(xiàn)處理速度極其緩慢,并且對手機性能消耗太大,不滿足實時性的需求
嘗試(二)
后來發(fā)現(xiàn)了將arrayBuffer畫到canvas上,再將canvas畫布的圖片導(dǎo)出為base64的方式,遂進行了嘗試。
wx.canvasPutImageData
wx.canvasToTempFilePath
wx.getFileSystemManager()
采坑1
frame.data
的格式為ArrayBuffer
,不能直接上傳,需要進行如下處理:
var data = new Uint8Array(frame.data);
var clamped = new Uint8ClampedArray(data);
wx.canvasPutImageData({
canvasId: 'getImg',
x: 0,
y: 0,
width: frame.width,
height: frame.height,
data: clamped,
success(res) { ... },
fail(err) { ... }
}
采坑2
fail canvas is empty
- 問題:
canvasPutImageData
未綁定this 解決方法:
在函數(shù)開頭定義變量that
指向this,并使用that綁定//html //js onReady(){ const that = this wx.canvasPutImageData({ canvasId: 'myCanvas' ... },that) }
采坑3
wx.canvasToTempFilePath
報錯:"create bitmap failed"
- 解決方法:
用來存放圖片的canvas不能設(shè)置hidden="true"
,所以可以利用position: absolute
進行絕對定位,使得canvas脫離文檔流,并通過設(shè)置top和left等位置,將canvas移出視口。 此時,"create bitmap failed"錯誤不再發(fā)生。
采坑4
由于生成圖片是個耗費性能的工作,所以理應(yīng)使得傳到后臺的圖片盡可能小,防止頁面卡頓。但同時又需要將正確幀顯示在頁面上,這就造成了矛盾。
- 解決方法:
每次上傳幀的同時進行拍照,若拍照返回的結(jié)果是正確的,則將拍照的本地圖片進行展示。此時進行真機測試發(fā)現(xiàn),無卡頓現(xiàn)象。
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站開發(fā)公司哪家好
- 關(guān)鍵詞快速排名
- 云南網(wǎng)站建設(shè)公司地址
- 網(wǎng)站搭建
- 云南小程序開發(fā)制作公司
- 云南網(wǎng)站建設(shè)首選公司
- 小程序開發(fā)課程
- 保險網(wǎng)站建設(shè)公司
- 云南科技公司
- 小程序生成海報
- 開發(fā)制作小程序
- 網(wǎng)站建設(shè)哪家強
- 網(wǎng)站建設(shè)專業(yè)品牌
- painter
- 網(wǎng)站建設(shè)制作
- 云南小程序開發(fā)報價
- 昆明小程序設(shè)計
- .net網(wǎng)站
- 云南網(wǎng)站建設(shè)一條龍
- 紅河小程序開發(fā)
- 云南網(wǎng)站建設(shè)優(yōu)化
- 網(wǎng)站建設(shè)百度官方
- 云南小程序開發(fā)公司推薦
- 云南網(wǎng)站建設(shè)百度
- 小程序的開發(fā)公司
- SEO
- 云南網(wǎng)站建設(shè) 網(wǎng)絡(luò)服務(wù)
- vue開發(fā)小程序
- 云南電商網(wǎng)站建設(shè)
- 百度排名