2015-11-19 70 views
2

我有一個移動應用程序需要顯示將通過REST API發送給它的圖像。如何在API上轉換圖像?我正在開發一個使用C#的ASP.net Web API。如何通過REST API傳輸圖像

我試圖轉換圖像爲base64然後把它雖然API到移動設備,但這似乎採取了很多的時間,我要送大量的圖片到我的移動設備中的一個運行。

我需要通過API發送圖像文件與其他數據一起向移動設備和PhoneGap的Android將其保存在本地數據庫以便進一步使用。 任何幫助,將不勝感激。

+0

您可以從專門的數據存儲庫(類似於Amazon S3或Azure Blob Storage)生成公共鏈接,然後只通過API發送鏈接。 – activatedgeek

+0

但在移動應用端,我不想從網絡訪問圖像,因爲應用程序應該即使脫機工作(沒有互聯網) – Arti

+0

因此,你可以有一個本地緩存存儲爲您的圖像。但是第一次你必須去取! – activatedgeek

回答

0

如果你想通過REST API發送圖像或文件,那麼它應該是通過多部請求執行。 請參考here它如何讓您的工作變得輕鬆。

您還可以使用Retrofit創建多請求。

+0

我在MVC中構建API。 – Arti

+0

模型視圖控制器的MVC?或者是其他東西? – Avi

+0

是的。 ASP.net中的模型視圖控制器Web API – Arti

1

如果你想使用Base64是最好的方式來發送與其他數據的圖像在一個請求。

你能想到使用gzip壓縮的圖像數據,以減少大小。另一種方式是將圖像以縮小的尺寸發送給您的android客戶端alonside,並提供完整尺寸圖片的網址。這使您可以快速向用戶顯示結果,然後從服務器加載後臺任務中的大圖像,並替換數據庫中的小圖像。

+0

Android將無法一直訪問inetnet。只有在應用程序的第一次運行或每當用戶想要更新數據(只要有互聯網連接..),api將被調用,它將從移動本地數據庫加載/更新數據。因此,在後臺加載完整大小的圖像將不起作用。 :-( – Arti

+0

然後,沒有一個真正的替代方法來一次加載所有圖像。正如我所說的,您可以壓縮圖像或使用質量較低/壓縮率較高的JPEG來減小文件大小 – crysxd