【发布时间】:2013-08-26 06:44:26
【问题描述】:
在将图片上传到 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;
}
每个循环花费的时间非常多,几秒钟,这导致在有效地将图像发送到服务器之前有很长的延迟。
任何方法/想法/策略?
非常感谢!
【问题讨论】:
-
这个 SO 答案怎么样:[stackoverflow.com/questions/9506871/… [1]: stackoverflow.com/questions/9506871/…
-
@rakeshNS 这正是他正在做的......
标签: iphone ios image performance upload