Проблема с UIImagePickerControllerEditedImage - PullRequest
5 голосов
/ 28 марта 2012

Мне нужно отредактировать мои изображения перед их импортом в приложение, но после редактирования изображение снижает качество, как этого избежать?

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [self dismissModalViewControllerAnimated:YES];
    imgEdited.image = [info objectForKey:UIImagePickerControllerEditedImage];


}

Ответы [ 4 ]

4 голосов
/ 12 мая 2014

Вы можете обрезать UIImagePickerControllerOriginalImage вручную, используя значение, указанное в UIImagePickerControllerCropRect.

Пример непроверенного быстрого и грязного:

static UIImage *my_croppedImage(UIImage *image, CGRect cropRect)
{
    UIGraphicsBeginImageContext(cropRect.size);
    [image drawAtPoint:CGPointMake(-cropRect.origin.x, -cropRect.origin.y)];
    UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return cropped;
}

- (void) imagePickerController:(UIImagePickerController *)picker
 didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    // …

    UIImage *originalImage = info[UIImagePickerControllerOriginalImage];
    CGRect cropRect = [info[UIImagePickerControllerCropRect] CGRectValue];
    UIImage *croppedImage = my_croppedImage(originalImage, cropRect);

    // …
}    
1 голос
/ 28 марта 2012
- (void)imagePickerController:(UIImagePickerController *)picker 
                      didFinishPickingMediaWithInfo:(NSDictionary *)info {

  [picker dismissModalViewControllerAnimated:YES];
  [picker release];

          // Edited image works great (if you allowed editing)
  myUIImageView.image = [info objectForKey:UIImagePickerControllerEditedImage];
          // AND the original image works great
  myUIImageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
          // AND do whatever you want with it, (NSDictionary *)info is fine now
  UIImage *myImage = [info objectForKey:UIImagePickerControllerEditedImage];
}

Вы можете редактировать свое изображение.Попробуйте это может работать для вашего приложения. Спасибо!

0 голосов
/ 29 марта 2012

Хорошо.Это будет звучать глупо.Но действительно ли изображение низкого качества или просто отображается как низкое качество?

Возможно, вы захотите экспортировать это изображение на свой ПК и проверить его фактически низкое качество, а не просто изображение, показывающее его как низкое качество.

0 голосов
/ 28 марта 2012

Понижение качества не имеет ничего общего с кодом, который вы представили выше.Качество изображения зависит от того, что вы делаете со своим изображением во время редактирования.Вы увеличиваете и кадрируете изображение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...