0

iPhone アプリでの画像のサイズ変更について疑問があります。ユーザーが写真を撮るか、ギャラリーから写真を選択すると、この写真がサーバーに送信されます。写真のサイズを変更するための この回答のコードは既にあります。

UIImage * small=[self imageByScalingToSize:CGSizeMake(150,150) img:image];

サイズは一例です。

サーバーに小さく送信しますが、考慮に入れる必要があります。

  • 画像は 150 キロバイト以下である必要があります。
  • ここで、ユーザーが 3G 経由で画像を送信すると、iPhone が自動的に画像のサイズを (800,600) に変更することを 読みました。

だから私がしたいのは、画像のサイズを(800,600)に変更し(この部分はすでに持っています)、それが150kを超えているかどうかを確認し、そうであれば何らかの形で縮小することです。

サイズとおそらく他のデータを知っている画像のバイト数を計算する方法はありますか?
ファイルサイズでこのサイズ削減を達成するにはどうすればよいですか?

4

2 に答える 2

1

UIImage を NSData および user -length に変換して、画像のバイトサイズを取得します。

アップルのドキュメントから:

length - レシーバーに含まれるバイト数を返します。

どちらかを使用してUIImageを変換できます

NSData * UIImagePNGRepresentation ( UIImage *image );

また

NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality );
于 2012-01-30T12:53:49.857 に答える
1

どのように画像をアップロードしていますか。バイトデータを送信するだけで、iOS はそれが画像であることを認識せず、サイズを変更できません! 次のようなものを使用して見ましたか

NSData *imageData = UIImageJPEGRepresentation(myUIImage, compressionQuality);

画像を圧縮したり、サイズを変更したりします。これにより、base64 でエンコードしてサーバーに送信できる NSData オブジェクトが得られます。また、画像がバイト単位でどれだけ大きいかを確認し、十分に小さいかどうかを判断するために、NSData を形成します。

お役に立てれば。:)

于 2012-01-30T12:54:40.670 に答える