Android客戶端 和 伺服器 的圖片傳輸技術
阿新 • • 發佈:2020-10-14
Android客戶端 和 伺服器 的圖片傳輸技術
寫在前面
今天我們來看看如何處理Android
客戶端到Web API
後端的圖片的一些處理方法。
我比較常用的在兩者間處理圖片的幾種方式
Android
傳送圖片to Base64
圖片資料,Web API
端進行資料轉碼成圖片並儲存到本地。Android
傳送圖片to Base64
圖片資料,Web API
端進行資料轉碼成二進位制形式儲存到資料庫。Web API
直接傳送圖片名稱,Android
客戶端通過網路方式載入圖片(將圖片的URL
地址讀取成InputStream
再將其轉換為Bitmap
)Web API
從資料庫中讀取圖片二進位制檔案,並通過Base64
Base64
轉Bitmap
的操作。
以上大概就是我對於服務端和客戶端圖片操作的全部方法了。
因為後服務端轉碼網上一搜一堆,這裡就不詳細說明了。
方法一:Web API 將Base64檔案轉碼成圖片並存儲到本地
-
將圖片在
Android
客戶端將Bitamp
轉換為Base64編碼
檔案並且通過Post
方法進行傳輸,但是需要注意的是 : )。就是每次在Post
傳輸檔案時如果是傳輸的資料過大會導致Post
請求失敗。 -
其次就是對於
Web API
服務端的操作了。首先,我們在Web API
獲取相對應的儲存檔案的資料夾路徑。string path = System.Web.Hosting.HostingEnvironment.MapPath($@"/Images/");
如何程式碼就是用於獲取
Web API
所在伺服器的相對路徑了,並且存放在Images
資料夾。 -
如何儲存將要儲存檔案的名稱的問題:
string fileName = Guid.NewGuid().ToString();
這裡我們使用的是
Guid
的方式去獲取全域性的唯一名稱。 -
如何通過流的形式去寫入檔案:
FileStream fileStream = new FileStream(path + fileName + ".jpg", FileMode.Create, FileAccess.Write);
先是建立一個
FileStream
並且設定檔案型別為FileModel.Create
FileAccess.Write
.並且將儲存圖片的
Base64
檔案轉換為位元組陣列的形式。以及通過FileStream.Write
的方式去寫入資料。
這樣,從Android客戶端傳輸到Web API
並進行儲存的操作也就完成了。
方法:Android 通過圖片的網路地址進行圖片的讀取
Android
如何讀取網路圖片,其實就是通過Get
方法去獲取。
Bitmap mBitmap = BitmapFactory.decodeStream(new URL(address).openStream());
這裡的address
就是我們的網路圖片的地址。但是他也是通過Get
方法去獲取,所以也是需要使用多執行緒來獲取資料。