1

収穫時期に問題があります。横向きで撮るとうまくいきますが、縦向きで撮るとトリミングされません。ユーザーにもポートレートだけで撮ってもらいたいです。ポートレートで機能しないコードに何か問題がありますか、それともコードを追加する必要がありますか? 最初のコードはカメラの起動用で、2 番目のイメージピッカー コントローラーはトリミング用です。

-(IBAction)cameraButtonPressed:(id)sender
{

    UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        pickerController.delegate = self;
        [self presentViewController:pickerController
                           animated:YES
                         completion:nil];
    }

}


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

    {
        UIImage *imageTaked = info[UIImagePickerControllerOriginalImage];
        //You can take the metadata here => info [UIImagePickerControllerMediaMetadata];

        UIImage* imageCropped;

        CGFloat side = MIN(imageTaked.size.width, imageTaked.size.height);
        CGFloat x = imageTaked.size.width / 320 - side / 320;
        CGFloat y = imageTaked.size.height / 320 - side / 320;

        CGRect cropRect = CGRectMake(x,y,side,side);
        CGImageRef imageRef = CGImageCreateWithImageInRect([imageTaked CGImage], cropRect);
        imageCropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);
    }
}
4

0 に答える 0