想不到光是圖片處理就花了很多時間
今天紀錄一下處理大頭照-可以滑動與縮放圓圈,確認後儲存PNG檔供後續使用
心中的Modle是LINE大頭照處理方式
主要有三個步驟
一.自定義View,覆寫onDraw()與onTouchEvent去產生動態的Crop Frame
二.照片需要有兩張,一張是染灰的底以及圓形裁切出來的圖
而圓形裁切的圖做法可以
參考連結:Crop Circle Image
三.第二步驟雖然裁切之後也是用Bitma儲存,但是結果與夢想總有落差QQ
所以還要加一步裁切圖片
參考連結:裁切Bitmap特定區域
Bitmap轉InputStream
這邊附註幾點心得:
1.Path繪製時,記得要path.reset(),不然路徑會重複累加
2.在實作第二步時,需要另設新的canvas使用
另外再利用onDraw配置的canvas繪製時裁切後的圖片時要注意座標
因為此時裁切後的圖原始尺寸不變,所以繪製時座標不需要跟著手指移動
(有點難懂,但是當時遇到時想了很久.... 實作時就會知道了)
另外圖片真的很難搞~"~
1.呼叫Camera拍照,系統回傳的照片解析度極差,這部分有解
(OS. Camera API官方有出第二代,但是要極高端手機才能用QQ)
2.照片太大會有錯誤,一般螢幕截圖的解析度就無法直接讀
需要先調整尺寸才能載入App中
原始碼太雜所以就不貼了,基本上一步步做就沒什麼問題
有需要再留言,希望對大家有幫助,謝謝
[後記一.儲存照片與顯示於Gallery上]
照片拍照後可以自創儲存的路徑,但是如果想要在Gallery中顯示
需要特別去scan (我是用MediaScannerConnections,另一個sendBroatcase會錯)
[後記二.將URI轉成絕對路徑]
沒有留言:
張貼留言