Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extension UIImage {
- func resizeImage(_ newSize: CGSize) -> UIImage? {
- func isSameSize(_ newSize: CGSize) -> Bool {
- return size == newSize
- }
- func scaleImage(_ newSize: CGSize) -> UIImage? {
- func getScaledRect(_ newSize: CGSize) -> CGRect {
- let ratio = max(newSize.width / size.width, newSize.height / size.height)
- let width = size.width * ratio
- let height = size.height * ratio
- return CGRect(x: 0, y: 0, width: width, height: height)
- }
- func _scaleImage(_ scaledRect: CGRect) -> UIImage? {
- UIGraphicsBeginImageContextWithOptions(scaledRect.size, false, 0.0);
- draw(in: scaledRect)
- let image = UIGraphicsGetImageFromCurrentImageContext() ?? UIImage()
- UIGraphicsEndImageContext()
- return image
- }
- return _scaleImage(getScaledRect(newSize))
- }
- return isSameSize(newSize) ? self : scaleImage(newSize)!
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment