perlguy2

resize UIImage

Jun 28th, 2018
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.07 KB | None | 0 0
  1. extension UIImage {
  2.     func resizeImage(_ newSize: CGSize) -> UIImage? {
  3.         func isSameSize(_ newSize: CGSize) -> Bool {
  4.             return size == newSize
  5.         }
  6.  
  7.         func scaleImage(_ newSize: CGSize) -> UIImage? {
  8.             func getScaledRect(_ newSize: CGSize) -> CGRect {
  9.                 let ratio   = max(newSize.width / size.width, newSize.height / size.height)
  10.                 let width   = size.width * ratio
  11.                 let height  = size.height * ratio
  12.                 return CGRect(x: 0, y: 0, width: width, height: height)
  13.             }
  14.  
  15.             func _scaleImage(_ scaledRect: CGRect) -> UIImage? {
  16.                 UIGraphicsBeginImageContextWithOptions(scaledRect.size, false, 0.0);
  17.                 draw(in: scaledRect)
  18.                 let image = UIGraphicsGetImageFromCurrentImageContext() ?? UIImage()
  19.                 UIGraphicsEndImageContext()
  20.                 return image
  21.             }
  22.             return _scaleImage(getScaledRect(newSize))
  23.         }
  24.  
  25.         return isSameSize(newSize) ? self : scaleImage(newSize)!
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment