12345678910111213141516171819202122232425262728293031323334 |
- //
- // UIImage+Crop.swift
- // CropViewController
- //
- // Created by Guilherme Moura on 2/26/16.
- // Copyright © 2016 Reefactor, Inc. All rights reserved.
- // Credit https://github.com/sprint84/PhotoCropEditor
- import UIKit
- extension UIImage {
- func rotatedImageWithTransform(_ rotation: CGAffineTransform, croppedToRect rect: CGRect) -> UIImage {
- let rotatedImage = rotatedImageWithTransform(rotation)
-
- let scale = rotatedImage.scale
- let cropRect = rect.applying(CGAffineTransform(scaleX: scale, y: scale))
-
- let croppedImage = rotatedImage.cgImage?.cropping(to: cropRect)
- let image = UIImage(cgImage: croppedImage!, scale: self.scale, orientation: rotatedImage.imageOrientation)
- return image
- }
-
- fileprivate func rotatedImageWithTransform(_ transform: CGAffineTransform) -> UIImage {
- UIGraphicsBeginImageContextWithOptions(size, true, scale)
- let context = UIGraphicsGetCurrentContext()
- context?.translateBy(x: size.width / 2.0, y: size.height / 2.0)
- context?.concatenate(transform)
- context?.translateBy(x: size.width / -2.0, y: size.height / -2.0)
- draw(in: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height))
- let rotatedImage = UIGraphicsGetImageFromCurrentImageContext()
- UIGraphicsEndImageContext()
- return rotatedImage!
- }
- }
|