最近做的小程序需要圖片上傳頭像的功能,不對上傳的圖片做處理肯定出來的效果不好;所以就隱藏了一個canvas對上傳的圖片進行壓縮或者進行大小的編輯;
通過chooseImage方法,可以拿到圖片的臨時路徑;然后,drawImage到canvas上;再通過canvasToTempFilePath的方法將處理后的圖片導出路徑來,最后上傳到服務器上;
那么問題出現了:選擇的圖片drawImage到canvas沒有問題;但是怎么canvasToTempFilePath導出的路徑圖片都是空白的;
問題過程:
1、之前,通過這種方式導出來沒有問題的;
2、從網上找到大家解決方式,通過draw回調來導出圖片,但是還是不行,draw的第一次參數reserve設置為false;
3、修改fileType類型;
通過以上方法仍舊不行,經過反復跟蹤才發現原來問題不出在canvasToTempFilePath這個方法上;原來是我在選擇圖片的時候canvas標簽是hidden的,選擇圖片后才讓它顯示。
這樣拿到的canvas中的圖片對象是空的,造就了圖片是空白的;
還有一種情況導出圖片是空白,是因為draw的回調函數是異步的,在調用canvasToTempFilePath方法適當的加一些時間延遲;
分享不是為了別的,只是希望填坑;謝謝!