Сжать изображение с помощью UIImageJPEGRepresentation перед отправкой на сервер

Я пытаюсь сжать изображение перед загрузкой на сервер с помощью UIImageJPEGRepresentation.

Пока что я изменил изображение на PNG и изменил качество на 0.01f. Я пробовал несколько разных способов написания этого.

Это оптимально перед отправкой на сервер? Что я должен изменить, чтобы оптимизировать?

 - (void)uploadPhoto {
    WUTModelImageUploadReq *imageUploadReq = [[WUTModelImageUploadReq alloc]init];

    imageUploadReq.photo = [self encodeToBase64String:[UIImage imageWithData:UIImageJPEGRepresentation(self.viewControllerPost.imageForPost, 0.01f)]];
    imageUploadReq.extension = @"png";

    void (^wsSuccessHandler)(AFHTTPRequestOperation *operation, NSDictionary* responseObject) = ^(AFHTTPRequestOperation *operation, id responseObject){
    NSLog(@"Pull Feed responseObject %@",responseObject);

    NSError *error;
    WUTModelPostImageResponse *wsResponse = [[WUTModelPostImageResponse alloc]initWithDictionary:(NSDictionary *)responseObject error:&error];

    if (error) {
        errorMessage = @"Failure to upload image.";
        [self postExecuteFail];
    }
    else{
        if (wsResponse.success) {
            WUTModelImage *imageTemp = [wsResponse.data firstObject];
            [postItem setObject:imageTemp.photo forKey:@"photo"];
            [self uploadPostFeed];

        }else{
            errorMessage = @"Failure to upload image.";
            [self postExecuteFail];
        }
      }
   };

1 ответ

Предложения:

  1. Используйте расширение "jpg", а не "png".
  2. Используйте 0.0 для сжатия Quality, чтобы максимизировать сжатие.
  3. Рассмотрите возможность изменения размера изображения, если ваша ситуация позволяет.
Другие вопросы по тегам