01 使用AFN3 0上传图片时间慢的问题

220 阅读1分钟

##iOS中修改图片的大小:修改分辨率和裁剪 ###第一步:裁剪图片

    // 裁剪
    // 要裁剪的图片区域,按照原图的像素大小来,超过原图大小的边自动适配
    CGSize size =  CGSizeMake(1000, 1000);
    UIImage *img = [self imageWithImageSimple:image scaledToSize:size];

/**
 *  要裁剪的图片区域,按照原图的像素大小来,超过原图大小的边自动适配
 */
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)size {
    // 1. 创建一个基于位图(bitmap)的上下文(context), 并将其设置为当前上下文(context)
    UIGraphicsBeginImageContext(size);
    // 2. 绘制改变图片的大小
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    // 3. 从当前context中创建一个改变大小后的图片
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    // 4. 使当前的context出堆栈
    UIGraphicsEndImageContext();
    // 5. 返回新的改变大小后的图片
    return scaledImage;
}

###第二步:压缩图片

NSData *imageData = UIImageJPEGRepresentation(img, 0.001);

###第三步:上传图片

    // 上传图片
    [mgr POST:@"http://api.jingshonline.com/api/LawyerCenter/UploadAvatdor" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        // 上传文件
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        formatter.dateFormat = @"yyyyMMddHHmmss";
        NSString *str = [formatter stringFromDate:[NSDate date]];
        NSString *fileName = [NSString stringWithFormat:@"%@.jpg", str];
        
        [formData appendPartWithFileData:imageData name:@"avatdor" fileName:fileName mimeType:@"image/png"];
    } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
        userInfo[@"iconURLStr"] = responseObject[@"url"];
        self.iconURLStr = responseObject[@"url"];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"updateIconAndName" object:self userInfo:userInfo];
        [SVProgressHUD showSuccessWithStatus:@"修改成功"];
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        [SVProgressHUD showErrorWithStatus:@"修改失败"];
        ADLog(@"%@", error);
    }];