Ver código fonte

1.还原sdwebimage 解压图片代码,修复解压大图消耗内存过大问题

huangxiaodong 11 meses atrás
pai
commit
91c4f75ab9

+ 1 - 1
创维盒子/Pods/SDWebImage/SDWebImage/Core/SDImageCacheDefine.m

@@ -88,7 +88,7 @@ UIImage * _Nullable SDImageCacheDecodeImageData(NSData * _Nonnull imageData, NSS
         }
         if (shouldDecode) {
             //hxd del 2024525 因为在图片也 不断反复滑动就会内存暴增闪退
-            //image = [SDImageCoderHelper decodedImageWithImage:image];
+            image = [SDImageCoderHelper decodedImageWithImage:image];
         }
         // assign the decode options, to let manager check whether to re-decode if needed
         image.sd_decodeOptions = coderOptions;

+ 16 - 8
创维盒子/Pods/SDWebImage/SDWebImage/Core/SDImageCoderHelper.m

@@ -370,14 +370,15 @@ static const CGFloat kDestSeemOverlap = 2.0f;   // the numbers of pixels to over
 #if SD_UIKIT
     // See: https://developer.apple.com/documentation/uikit/uiimage/3750834-imagebypreparingfordisplay
     // Need CGImage-based
-    if (@available(iOS 15, tvOS 15, *)) {
-        UIImage *decodedImage = [image imageByPreparingForDisplay];
-        if (decodedImage) {
-            SDImageCopyAssociatedObject(image, decodedImage);
-            decodedImage.sd_isDecoded = YES;
-            return decodedImage;
-        }
-    }
+    //hxd del 20240710
+//    if (@available(iOS 15, tvOS 15, *)) {
+//        UIImage *decodedImage = [image imageByPreparingForDisplay];
+//        if (decodedImage) {
+//            SDImageCopyAssociatedObject(image, decodedImage);
+//            decodedImage.sd_isDecoded = YES;
+//            return decodedImage;
+//        }
+//    }
 #endif
     
     CGImageRef imageRef = image.CGImage;
@@ -391,6 +392,13 @@ static const CGFloat kDestSeemOverlap = 2.0f;   // the numbers of pixels to over
     format.opaque = !hasAlpha;
     format.scale = image.scale;
     CGSize imageSize = image.size;
+    
+    //hxd add 20240710
+    if(imageSize.width > 640){
+        imageSize.height =  imageSize.height/(imageSize.width/640.0);
+        imageSize.width = 640.0;
+    }
+    
     SDGraphicsImageRenderer *renderer = [[SDGraphicsImageRenderer alloc] initWithSize:imageSize format:format];
     UIImage *decodedImage = [renderer imageWithActions:^(CGContextRef  _Nonnull context) {
             [image drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];