1

I'm using this project: http://code4app.net/ios/Perfect-Image-Cropper/51de11576803fa4548000004 for cropping images.

The fact is that is working perfect with photos imported from Library, but not with image from camera. When selecting image from camera it's showing cropped but stretched.

@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];
}

Any help will be very appreciate!

Lary
  • 31
  • 2

0 Answers0