3

インターネット経由で UIImage を送信する必要がありますが、これまでにいくつかの問題が発生しています。

現在、UIImage を取得し、16 次元にして NSData に変換し、NSData+base64 を使用して NSString を作成しています。次に、これを JSON 要求の一部としてサーバーに送信します。

ほとんどの場合、これは完全に機能します。

ただし、ファイルサイズが大きいです。セルラー接続では、画像の読み込みに約 10 秒かかる場合があります。

ネットワーク経由で UIImage を送信して、サイズを小さくし、品質を維持するにはどうすればよいですか? これまでの16分の1の画素数にしても、写真は1.5MBにもなります。300KBくらい欲しいです。

zip または gzip のみで圧縮しても、わずかな (<.1MB) 節約になるようです。

ありがとう、ロバート

4

2 に答える 2

2

圧縮してJPEGまたはPNGとして保存することをお勧めします。次のような方法を使用します

        UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality)

次に、そこから取得した NSData オブジェクトを投稿します。compressionQuality 変数をいじることで、適切なサイズと品質のトレードオフを見つけることができるはずです。

于 2012-11-14T03:37:04.257 に答える
1

画像をデータに変換する方法については言及していません。あなたは「写真」に言及しています。画像が写真の場合はUIImageJPEGRepresentation、 ではなくを使用してくださいUIImagePNGRepresentationcompressionQualityパラメータをいじって、データ サイズと画質のバランスをとる圧縮レベルを見つける必要があります。

于 2012-11-14T03:38:33.830 に答える