...
|
...
|
@@ -70,6 +70,9 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over |
|
|
case SDImageFormatWebP:
|
|
|
// Do not support WebP decoding
|
|
|
return NO;
|
|
|
case SDImageFormatHEIC:
|
|
|
// Check HEIC decoding compatibility
|
|
|
return [[self class] canDecodeFromHEICFormat];
|
|
|
default:
|
|
|
return YES;
|
|
|
}
|
...
|
...
|
@@ -80,6 +83,9 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over |
|
|
case SDImageFormatWebP:
|
|
|
// Do not support WebP progressive decoding
|
|
|
return NO;
|
|
|
case SDImageFormatHEIC:
|
|
|
// Check HEIC decoding compatibility
|
|
|
return [[self class] canDecodeFromHEICFormat];
|
|
|
default:
|
|
|
return YES;
|
|
|
}
|
...
|
...
|
@@ -470,6 +476,33 @@ static const CGFloat kDestSeemOverlap = 2.0f; // the numbers of pixels to over |
|
|
return YES;
|
|
|
}
|
|
|
|
|
|
+ (BOOL)canDecodeFromHEICFormat {
|
|
|
static BOOL canDecode = NO;
|
|
|
static dispatch_once_t onceToken;
|
|
|
dispatch_once(&onceToken, ^{
|
|
|
#if TARGET_OS_SIMULATOR || SD_WATCH
|
|
|
canDecode = NO;
|
|
|
#elif SD_MAC
|
|
|
NSProcessInfo *processInfo = [NSProcessInfo processInfo];
|
|
|
if ([processInfo respondsToSelector:@selector(operatingSystemVersion)]) {
|
|
|
// macOS 10.13+
|
|
|
canDecode = processInfo.operatingSystemVersion.minorVersion >= 13;
|
|
|
} else {
|
|
|
canDecode = NO;
|
|
|
}
|
|
|
#elif SD_UIKIT
|
|
|
NSProcessInfo *processInfo = [NSProcessInfo processInfo];
|
|
|
if ([processInfo respondsToSelector:@selector(operatingSystemVersion)]) {
|
|
|
// iOS 11+ && tvOS 11+
|
|
|
canDecode = processInfo.operatingSystemVersion.majorVersion >= 11;
|
|
|
} else {
|
|
|
canDecode = NO;
|
|
|
}
|
|
|
#endif
|
|
|
});
|
|
|
return canDecode;
|
|
|
}
|
|
|
|
|
|
+ (BOOL)canEncodeToHEICFormat {
|
|
|
static BOOL canEncode = NO;
|
|
|
static dispatch_once_t onceToken;
|
...
|
...
|
|