iOS でサーバーにアップロードする前に画像の重量を最適化するベスト プラクティスは何ですか?
画像は、ユーザーの画像ライブラリから、または直接 UIPicker - カメラ モードから取得できます。
いくつかの要件があります: 最小アップロード解像度と希望する最大アップロード サイズです。
kMaxUploadSize = 50 kB および kMinUploadResolution = 1136 * 640 としましょう
私が現在行っていることは次のとおりです。
while (UIImageJPEGRepresentation(img,1.0).length > MAX_UPLOAD_SIZE){
img = [self scaleDown:img withFactor:0.1];
}
NSData *imageData = UIImageJPEGRepresentation(img,1.0);
-(UIImage*)scaleDown:(UIImage*)img withFactor:(float)f{
CGSize newSize = CGSizeMake(img.size.width*f, img.size.height*f);
UIGraphicsBeginImageContextWithOptions(newSize, YES, 0.0);
[img drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
各ループに費やされる時間は数秒と非常に長く、画像をサーバーに効果的に送信する前に非常に長い遅延が発生します。
アプローチ/アイデア/戦略はありますか?
どうもありがとう !