ユーザーが画像を選択できるという要件がありcamera roll
、アプリケーションは画像を最適化してサーバーにアップロードする必要があります。ALAssets
ユーザーがから写真を選択するためのライブラリとカスタムピッカーを使用していますcamera roll
。これを完全に達成することはできますが、ファイルサイズが大きくなるという問題があります。
問題は次のとおりです。
ユーザーが 1.7MB の写真を選択すると (これは、iOS
写真をメールで送信しようとしたときに によって報告されたフル サイズです)、その からバイトを直接取得ALAssetRepresentation
しALAsset
てNSData
、データのサイズも1.7MBです。ALAssetRepresentation
しかし、次のコードを使用して UIImage を取得すると..
UIImage *selImage = [UIImage imageWithCGImage:[assetRepresentation fullResolutionImage] scale:[assetRepresentation scale] orientation:[assetRepresentation orientation]];
圧縮品質 = 1.0f で使用するように変換するとUIImage
、NSData のサイズは元のサイズ (3.2MB) のほぼ 2 倍になります。NSData
UIImageJPEGRepresentation()
理想的には 1.7MB だけであるべきではありませんか??
予想どおり、ファイルに保存すると、ファイル サイズは 3.2MB のままです (サンドボックス アプリのドキュメント フォルダーをインポートして、xcode 4.2 を使用して確認しました)。しかし興味深いのはPreview
、Mac でファイルを開いてバイト サイズを確認すると、1.7MB (以前は 3.2 MB) と表示されていて、かなり紛らわしいことです..
助けてください..
前もって感謝します。