UIImage+Ex.swift 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // UIImage+Ex.swift
  3. // KittensTravelNotes
  4. //
  5. // Created by 100Years on 2025/7/6.
  6. //
  7. public extension UIImage {
  8. // 压缩图片到指定尺寸
  9. func compressImageSize(to size: CGSize) -> UIImage {
  10. let targetSize = size
  11. if self.size.width > targetSize.width || self.size.height > targetSize.height {
  12. return kf.resize(to: targetSize)
  13. }
  14. return self
  15. }
  16. public var pngImage:UIImage?{
  17. // 将 UIImage 转为 PNG Data
  18. guard let pngData = self.pngData() else {
  19. print("Failed to convert WebP image to PNG data.")
  20. return nil
  21. }
  22. // 使用 PNG Data 创建新的 UIImage
  23. return UIImage(data: pngData)
  24. }
  25. /// 将颜色转换为 UIImage
  26. /// - Parameters:
  27. /// - color: 目标颜色
  28. /// - size: 图片尺寸(默认 1x1)
  29. /// - Returns: 转换后的 UIImage
  30. public static func colorFrom(color: UIColor, size: CGSize = CGSize(width: 1, height: 1)) -> UIImage? {
  31. // 创建一个矩形
  32. let rect = CGRect(origin: .zero, size: size)
  33. // 开始图形上下文
  34. UIGraphicsBeginImageContextWithOptions(size, false, 0)
  35. // 设置颜色填充
  36. color.setFill()
  37. UIRectFill(rect)
  38. // 获取生成的图片
  39. let image = UIGraphicsGetImageFromCurrentImageContext()
  40. // 结束图形上下文
  41. UIGraphicsEndImageContext()
  42. return image
  43. }
  44. }