Обрезка изображения, растягивающая изображение с камеры

#ios #image #crop

#iOS #изображение #обрезка

Вопрос:

Я использую этот проект: http://code4app.net/ios/Perfect-Image-Cropper/51de11576803fa4548000004 для обрезки изображений.

Дело в том, что он идеально работает с фотографиями, импортированными из библиотеки, но не с изображением с камеры. При выборе изображения с камеры оно отображается обрезанным, но растянутым.

 @interface ImageViewController (){
    ImageCropperView *cropper;
    UIView *containerView;
    UIImageView *finImageView;
    UIButton *removeBtn;
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString *mediaType = info[UIImagePickerControllerMediaType];

    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        // Media is an image
        UIImage *image = info[UIImagePickerControllerOriginalImage];
        if (image != nil) {

            [self resetCropper];
            containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];

            [self.view addSubview:containerView];

            cropper = [[ImageCropperView alloc] initWithFrame:CGRectMake(10, 10, 300, 150)]
            [cropper setup];
            cropper.image = image;

            // Adding the crop button
            UIButton *cropBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
            [cropBtn addTarget:self action:@selector(cropImage:) forControlEvents:UIControlEventTouchUpInside];
            [cropBtn setTitle:@"Select" forState:UIControlStateNormal];

            cropBtn.frame = CGRectMake(140, 160, 80, 30.0);

            [containerView addSubview:cropBtn];
            [containerView addSubview:cropper];
        }
    }
}

// Action when crop button clicked
- (IBAction)cropImage:(id)sender
{
    [cropper finishCropping];

    UIImage *newImage = cropper.croppedImage;

    finImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 150)];
    finImageView.image = newImage;

    [cropper removeFromSuperview];
    [containerView removeFromSuperview];

    [self.scrollView insertSubview:finImageView belowSubview:self.actionsTab];

    // Adding a button for remove
    removeBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    removeBtn.frame = CGRectMake( 0, 0, 22, 22);
    [removeBtn setBackgroundImage:[UIImage imageNamed:@"remove"] forState:UIControlStateNormal];
    [removeBtn addTarget:self action:@selector(removePhoto:) forControlEvents:UIControlEventTouchUpInside];

    [finImageView insertSubview:removeBtn aboveSubview:finImageView];
    finImageView.userInteractionEnabled = YES;
}

- (IBAction)removePhoto:(id)sender{
    [self resetCropper];
    [finImageView removeFromSuperview];
}

- (void)resetCropper
{
    [cropper reset];
    finImageView.image = nil;
    [removeBtn removeFromSuperview];
}
  

Любая помощь будет очень признательна!