UIImage+Extensions.swift 662 B

123456789101112131415161718192021222324252627282930313233343536
  1. import UIKit
  2. /// Helper UIImage extension.
  3. extension UIImage {
  4. /// Checks if image has alpha component
  5. var hasAlpha: Bool {
  6. let result: Bool
  7. guard let alpha = cgImage?.alphaInfo else {
  8. return false
  9. }
  10. switch alpha {
  11. case .none, .noneSkipFirst, .noneSkipLast:
  12. result = false
  13. default:
  14. result = true
  15. }
  16. return result
  17. }
  18. /// Convert to data
  19. func cache_toData() -> Data? {
  20. #if swift(>=4.2)
  21. return hasAlpha
  22. ? pngData()
  23. : jpegData(compressionQuality: 1.0)
  24. #else
  25. return hasAlpha
  26. ? UIImagePNGRepresentation(self)
  27. : UIImageJPEGRepresentation(self, 1.0)
  28. #endif
  29. }
  30. }