2016-12-07 12 views
0

私たちはasp.net web apiアプリケーションに画像を送るIOSアプリケーションを持っています。そこで、画像を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サービスを呼び出しますか?または、compressedStreamまたはGZipStreamのようなオブジェクトをサービス引数として公開しますか?

おかげで、

答えて

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?

それはさらに簡単です、あなたはこれらのものの両方をやってコードのサンプルを見つけることができます。

関連する問題