UIImage+Extension.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // UIImage+Extension.swift
  3. // O2Platform
  4. //
  5. // Created by FancyLou on 2018/11/21.
  6. // Copyright © 2018 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. extension UIImage {
  10. /// EZSE: scales image
  11. public class func scaleTo(image: UIImage, w: CGFloat, h: CGFloat) -> UIImage {
  12. let newSize = CGSize(width: w, height: h)
  13. UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
  14. image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
  15. let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
  16. UIGraphicsEndImageContext()
  17. return newImage
  18. }
  19. func o2_aspectFitRectForSize(_ size: CGSize) -> CGRect {
  20. let targetAspect: CGFloat = size.width / size.height
  21. let sourceAspect: CGFloat = self.size.width / self.size.height
  22. var rect: CGRect = CGRect.zero
  23. if targetAspect > sourceAspect {
  24. rect.size.height = size.height
  25. rect.size.width = ceil(rect.size.height * sourceAspect)
  26. rect.origin.x = ceil((size.width - rect.size.width) * 0.5)
  27. } else {
  28. rect.size.width = size.width
  29. rect.size.height = ceil(rect.size.width / sourceAspect)
  30. rect.origin.y = ceil((size.height - rect.size.height) * 0.5)
  31. }
  32. return rect
  33. }
  34. }