2016-12-07 107 views
0

我們有一個IOS應用程序發送圖像到一個asp.net web api應用程序。所以我們將圖像轉換爲Base64,然後我們將其作爲字符串發送到Web服務。從Ios應用程序發送圖像到web api服務

問題是圖像的大小很大,因此轉換到base64需要很多時間,結果字符串的大小比初始圖像的大小要大。

我需要知道:

  • 如果有其他更好的辦法,而不是轉化爲Base64,存在調用Web服務
  • 我用Gzip壓縮之前,將圖像轉換/解壓縮的數組字節是這樣的:

    static byte[] Compress(byte[] data) 
        { 
         using (var compressedStream = new MemoryStream()) 
         using (var zipStream = new GZipStream(compressedStream, CompressionMode.Compress)) 
         { 
          zipStream.Write(data, 0, data.Length); 
          zipStream.Close(); 
          return compressedStream.ToArray(); 
         } 
        } 
    

是否有可能圖像轉換爲字節數組IOS部分然後調用Web服務?或者像compressedStreamGZipStream這樣的對象暴露爲服務參數?

感謝,

回答

1

,可以將圖像轉換爲字節數組,這裏是一個SO答案,倒是認爲:how to convert byte array to image in ios

最大的問題卻是這樣的:你實際需要的形象,大?你需要考慮一旦你有多個用戶這樣做,服務會變得緩慢,並且很可能會停下來,這會讓你的應用程序很難/很慢使用。

您可能需要考慮在發送圖像之前縮小圖像。您可以縮小尺寸,縮小質量,然後將其縮小,然後通過電線發送結果。

這裏是另一個SO帖子裏面觸及這一點:如果你正在使用xamarin和C#來構建應用程序What's the easiest way to resize/optimize an image size with the iPhone SDK?

當然然後那就更簡單了,你可以找到做這兩個事情的代碼示例。

相關問題