Skip to content

Instantly share code, notes, and snippets.

@Digitalchemy
Created February 6, 2011 06:21
Show Gist options
  • Save Digitalchemy/813185 to your computer and use it in GitHub Desktop.
Save Digitalchemy/813185 to your computer and use it in GitHub Desktop.
iOS: Crop a UIImage to the specified Rect
// Crop a UIImage to the specified cropRect
public UIImage CropImage(UIImage image, RectangleF cropRect)
{
UIGraphics.BeginImageContextWithOptions(cropRect.Size, false, 0);
var context = UIGraphics.GetCurrentContext();
context.TranslateCTM(0.0f, image.Size.Height);
context.ScaleCTM(1.0f, -1.0f);
context.DrawImage(new RectangleF(0, 0, image.Size.Width, image.Size.Height), image.CGImage);
context.ClipToRect(cropRect);
var croppedImage = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
return croppedImage;
}
@thexande
Copy link

UIImage Extension

extension UIImage {
    func cropped(boundingBox: CGRect) -> UIImage? {
        guard let cgImage = self.cgImage?.cropping(to: boundingBox) else {
            return nil
        }

        return UIImage(cgImage: cgImage)
    }
}

@vineeshtp
Copy link

Working fine. But, After edit image is rotating. How do I change this.

@bysnrk
Copy link

bysnrk commented Jul 7, 2018

Have the same problem with rotation. Cropped image rotated 90 degrees CCW. Any solution?

@cmdr-surender-singh
Copy link

@thexande Thanks sir, you make my day.

@lukelucas247
Copy link

lukelucas247 commented Feb 19, 2019

Working fine. But, After edit image is rotating. How do I change this.

Have the same problem with rotation. Cropped image rotated 90 degrees CCW. Any solution?

https://developer.apple.com/documentation/uikit/uiimage/orientation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment