| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- //
- // UIImageExtension.swift
- // LoopFollow
- //
- // Created by Jon Fawcett on 10/6/20.
- // Copyright © 2020 Jon Fawcett. All rights reserved.
- //
- import Foundation
- import UIKit
- extension UIImage {
- func resizeImage(_ dimension: CGFloat, landscape: Bool, opaque: Bool, contentMode: UIView.ContentMode = .scaleAspectFit) -> UIImage {
- var width: CGFloat
- var height: CGFloat
- var newImage: UIImage
- let size = self.size
- let aspectRatio = size.width/size.height
- switch contentMode {
- case .scaleAspectFit:
- if landscape { // Landscape image
- width = dimension
- height = dimension / aspectRatio
- } else { // Portrait image
- height = dimension
- width = dimension * aspectRatio
- }
- default:
- width = 368.0
- height = 448.0
- }
- if #available(iOS 10.0, *) {
- let renderFormat = UIGraphicsImageRendererFormat.default()
- renderFormat.opaque = opaque
- let renderer = UIGraphicsImageRenderer(size: CGSize(width: width, height: height), format: renderFormat)
- newImage = renderer.image {
- (context) in
- self.draw(in: CGRect(x: 0, y: 0, width: width, height: height))
- }
- } else {
- UIGraphicsBeginImageContextWithOptions(CGSize(width: width, height: height), opaque, 0)
- self.draw(in: CGRect(x: 0, y: 0, width: width, height: height))
- newImage = UIGraphicsGetImageFromCurrentImageContext()!
- UIGraphicsEndImageContext()
- }
- return newImage
- }
- }
|