|
|
@@ -524,13 +524,10 @@ extension AnimatedImageView {
|
|
|
self.maxFrameCount = count
|
|
|
self.maxRepeatCount = repeatCount
|
|
|
self.preloadQueue = preloadQueue
|
|
|
-
|
|
|
- GraphicsContext.begin(size: imageSize, scale: imageScale)
|
|
|
}
|
|
|
|
|
|
deinit {
|
|
|
resetAnimatedFrames()
|
|
|
- GraphicsContext.end()
|
|
|
}
|
|
|
|
|
|
/// Gets the image frame of a given index.
|
|
|
@@ -598,13 +595,12 @@ extension AnimatedImageView {
|
|
|
// To get a workaround, create another image ref and use that to create the final image. This leads to
|
|
|
// some performance loss, but there is little we can do.
|
|
|
// https://github.com/onevcat/Kingfisher/issues/1844
|
|
|
- guard let context = GraphicsContext.current(size: imageSize, scale: imageScale, inverting: true, cgImage: cgImage),
|
|
|
- let decodedImageRef = cgImage.decoded(on: context, scale: imageScale)
|
|
|
- else {
|
|
|
+ // https://github.com/onevcat/Kingfisher/pulls/2194
|
|
|
+ guard let unretainedImage = CGImage.create(ref: cgImage) else {
|
|
|
return KFCrossPlatformImage(cgImage: cgImage)
|
|
|
}
|
|
|
|
|
|
- return KFCrossPlatformImage(cgImage: decodedImageRef)
|
|
|
+ return KFCrossPlatformImage(cgImage: unretainedImage)
|
|
|
} else {
|
|
|
let image = KFCrossPlatformImage(cgImage: cgImage)
|
|
|
if backgroundDecode {
|
|
|
@@ -730,3 +726,5 @@ class SafeArray<Element> {
|
|
|
}
|
|
|
#endif
|
|
|
#endif
|
|
|
+
|
|
|
+
|