//
//  Utils.swift
//  Runner
//
//  Created by Alex Tran and Brandon Wees on 6/16/25.
//
import UIKit

extension UIImage {
  /// Crops the image to ensure width and height do not exceed maxSize.
  /// Keeps original aspect ratio and crops excess equally from edges (center crop).
  func resized(toWidth width: CGFloat, isOpaque: Bool = true) -> UIImage? {
    let canvas = CGSize(
      width: width,
      height: CGFloat(ceil(width / size.width * size.height))
    )
    let format = imageRendererFormat
    format.opaque = isOpaque
    return UIGraphicsImageRenderer(size: canvas, format: format).image {
      _ in draw(in: CGRect(origin: .zero, size: canvas))
    }
  }
}
