|
@@ -437,7 +437,7 @@ extension Kingfisher where Base: Image {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
let rect = self.size.kf.constrainedRect(for: size, anchor: anchor)
|
|
let rect = self.size.kf.constrainedRect(for: size, anchor: anchor)
|
|
|
- guard let image = cgImage.cropping(to: rect) else {
|
|
|
|
|
|
|
+ guard let image = cgImage.cropping(to: rect.scaled(scale)) else {
|
|
|
assertionFailure("[Kingfisher] Cropping image failed.")
|
|
assertionFailure("[Kingfisher] Cropping image failed.")
|
|
|
return base
|
|
return base
|
|
|
}
|
|
}
|
|
@@ -747,6 +747,13 @@ extension CGSizeProxy {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+extension CGRect {
|
|
|
|
|
+ func scaled(_ scale: CGFloat) -> CGRect {
|
|
|
|
|
+ return CGRect(x: origin.x * scale, y: origin.y * scale,
|
|
|
|
|
+ width: size.width * scale, height: size.height * scale)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
extension Comparable {
|
|
extension Comparable {
|
|
|
func clamped(to limits: ClosedRange<Self>) -> Self {
|
|
func clamped(to limits: ClosedRange<Self>) -> Self {
|
|
|
return min(max(self, limits.lowerBound), limits.upperBound)
|
|
return min(max(self, limits.lowerBound), limits.upperBound)
|