1234567891011121314151617181920212223242526272829303132333435 |
- import Kingfisher
- import CoreGraphics
- public struct WebPSerializer: CacheSerializer {
- public static let `default` = WebPSerializer()
-
-
- public var isLossy: Bool = false
-
-
- public var compressionQuality: CGFloat = 1.0
-
- private init() {}
- public func data(with image: KFCrossPlatformImage, original: Data?) -> Data? {
- if let original = original, !original.isWebPFormat {
- return DefaultCacheSerializer.default.data(with: image, original: original)
- } else {
- let qualityInWebp = min(max(0, compressionQuality), 1) * 100
- return image.kf.normalized.kf.webpRepresentation(isLossy: isLossy, quality: Float(qualityInWebp))
- }
- }
- public func image(with data: Data, options: KingfisherParsedOptionsInfo) -> KFCrossPlatformImage? {
- return WebPProcessor.default.process(item: .data(data), options: options)
- }
- }
|