0
votes

I have the exact problem as described here:

crop a rotated UIImage.

I need to crop a rotated UIImage, however, when I try the solution it doesn't crop the image

UIView *rotatedViewBox = [[UIView alloc] initWithFrame:videoPreviewView.frame];
NSLog(@"frame width: %f height:%f x:%f y:%f",videoPreviewView.frame.size.width, videoPreviewView.frame.size.height,videoPreviewView.frame.origin.x,videoPreviewView.frame.origin.y);
rotatedViewBox.transform = CGAffineTransformMakeRotation(90 * M_PI / 180);
CGSize rotatedSize = rotatedViewBox.frame.size;
UIGraphicsBeginImageContext(rotatedSize);
CGContextRef bitmap = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(bitmap, rotatedSize.width / 2.0f, rotatedSize.height / 2.0f);
CGContextRotateCTM(bitmap, 90 * M_PI / 180);
CGContextScaleCTM(bitmap, 1.0f, -1.0f);
CGContextDrawImage(bitmap, CGRectMake(-videoPreviewView.frame.size.width / 2.0f,
                                             -videoPreviewView.frame.size.height / 2.0f,
                                              videoPreviewView.frame.size.width,
                                              videoPreviewView.frame.size.height),
                           image.CGImage);
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

The log is: frame width:310 height:310 x:0 y: 69

The rotation works though but the new image is not cropped on 0,69,310,310 of the old image.

1
"doesn't work" tells us nothing. More details please.occulus
I updated the question - it doesn't crop the image at all. Only the rotation worksDejell

1 Answers

0
votes

You are using a "solution" which, although accepted, also carries the OP comment "but it's not working."

The solution only claims to deal with the rotation part of the problem, not the crop. It's doing what it claims to do, but no more.

Here's a CG function that performs a crop:

CGImageRef CGImageCreateWithImageInRect (
   CGImageRef image,
   CGRect rect
);

Input you image and the rect of the region you want to crop to.

See the answer here for an example use:
Cropping an UIImage