2

I have one UIImageView. Its content mode is set to AspectFit.

[imageView setContentMode:UIViewContentModeScaleAspectFit].

I need to crop a subImage from this image. This is the code which crops the image:

CGImageRef imageRef = CGImageCreateWithImageInRect([imageView.image CGImage], customRect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

where customRect is the rectangle from which I need to crop the image.

This is how I calculate it:

CGRect customRect = CGRectMake((cropView.frame.origin.x/xFactor),
                               (cropView.frame.origin.y/yFactor),
                               (cropView.frame.size.width/xFactor),
                               (cropView.frame.size.height/yFactor));

The problem comes in cropping. CGImageCreateWithImageInRect crops the given area according to the actual image size which, in some cases, is larger than the image view size. I tried using other approaches such as UIGraphics:getImageFromCurrentImageContext but these do not keep the image quality as much as it degrades them.

4

0 回答 0