extension UIImage {
// Crops an input image (self) to a specified rect
func cropToRect(rect: CGRect!) -> UIImage? {
// Correct rect size based on the device screen scale
let scaledRect = CGRectMake(rect.origin.x * self.scale, rect.origin.y * self.scale, rect.size.width * self.scale, rect.size.height * self.scale);
// New CGImage reference based on the input image (self) and the specified rect
let imageRef = CGImageCreateWithImageInRect(self.CGImage, scaledRect);
// Gets an UIImage from the CGImage
let result = UIImage(CGImage: imageRef, scale: self.scale, orientation: self.imageOrientation)
// Returns the final image, or NULL on error
return result;
}
}
// Crops an image to 100x100 pixels, 150px from left and 200px from top
let exampleImage = UIImage(named: "yourImageFile")
let croppedImage = exampleImage?.cropToRect(CGRectMake(150.0, 200.0, 100.0, 100.0))
if croppedImage != nil {
// Your image was cropped
} else {
// Something went wrong
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…