IOS開発中の画像アップロード時の2つの画像圧縮方式の比較について詳しく説明する。


IOS画像アップロード時の2つの画像圧縮方式の比較
アップロード画像が全面的ではないという考え:画像をローカルに保存して、画像のパスをサーバーにアップロードして、最後にサーバーからパスを戻すという方法は拡張性を持っていません。もしユーザが携帯電話を変えたら、新しい携帯の砂箱の中にサーバーから戻ってきた画像のパスがありません。この時はすでにアップロードした画像を取得できません。プロジェクトで明らかに不可能です。
画像をアップロードする正確な方法:画像をサーバーにアップロードするのは、一般的に写真NSDataをサーバにアップロードし、サーバは、NSStringアドレスに戻り、NSStringの経路をurlに変更し、urlを介してユーザの顔写真を更新するように要求する(ユーザの顔写真はこのときに更新されるNSStringである)。
コード:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
 //       
 manager.requestSerializer = [AFJSONRequestSerializer serializer];
 //       
 manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:[NSString stringWithFormat:@"%@%@", XLImageServerHost, functionName] parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
/////         
 NSData *eachImgData = UIImageJPEGRepresentation(image, 0.5);
 [formData appendPartWithFileData :eachImgData name : @"upload" fileName : @"picture.jpg" mimeType : @"image/jpeg" ];
 } success:^(AFHTTPRequestOperation *operation, id responseObject) {
 ///    
 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
 ///    
 }];
ここで紹介します。UImageJPEGGReprectionとUImagePNG Represonationの違い
Iphoneには画像データを読み取る簡単な方法が二つあります。UImageJPEGGRepreentationとUImagePNGRepresentation。 
UImageJPEGGReprection:
UImageJPEGGRepreentation方法は、時間がかかりますが、UImagePNGRepresentationは時間がかかります。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
UImagePNGRepresentationを使って写真を取得すると、カートンの現象を引き起こす可能性があります。
Iphoneには画像データを読み取る簡単な方法が二つあります。UImageJPEGGRepreentationとUImagePNGRepresentation。
UImagePNGRepresonation:
UImageJPEGGRepreentation関数には、2つのパラメータが必要です。ピクチャの参照と圧縮係数。UImagePNGRepresentationは、ピクチャ参照のみをパラメータとして必要とします。実際の使用過程で、UImage PNGRepresentationはUImage JPEGGReprectionよりも多くのデータを返します。
例えば、同じカメラで撮影された同じシーンの写真を読み取る場合、UImagePNGRepresentation()が返したデータの大きさは199 Kで、UImageJPEGGRepreentation(UImage*image、1.0)が返したデータの大きさは140 KBで、前者より50 KB以上少ない。画像の鮮明度が要求されない場合、Igreese 2番目のパラメータを設定することができます。写真のデータ量を大幅に減らす。
例えば、先ほど撮影した画像は、UImageJPEGGReprection(UImage*image,1.0)を呼び出してデータを読み出すと、返ってきたデータのサイズは140 KBですが、圧縮係数を変更した後、UImage JPEGGRepreentation(UImage*image,0.5)を呼び出してデータを読み出すと、返ってきたデータの大きさは11 KB以上で、画像のデータ量が大きく圧縮されます。画像の品質は明らかに低下していません。したがって、画像データの内容を読み取る際には、UImageJPEGGRepreentationを優先的に使用し、自分の実際の使用シーンに応じて、圧縮係数を設定し、さらに画像データの量を低減することが推奨されます。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。