Merge pull request #277 from SDWebImage/bugfix/jpeg_animatedimage_data
Allows to use UIImage/NSImage as defaults when init the AnimatedImage with JPEG data
This commit is contained in:
commit
5c6bfdfe72
|
@ -46,7 +46,7 @@ jobs:
|
|||
matrix:
|
||||
iosDestination: ["name=iPhone 13 Pro"]
|
||||
tvOSDestination: ["name=Apple TV"]
|
||||
watchOSDestination: ["platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"]
|
||||
watchOSDestination: ["platform=watchOS Simulator,name=Apple Watch Series 7 (45mm)"]
|
||||
macOSDestination: ["platform=macOS"]
|
||||
macCatalystDestination: ["platform=macOS,arch=x86_64,variant=Mac Catalyst"]
|
||||
steps:
|
||||
|
|
|
@ -53,7 +53,8 @@
|
|||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
allowLocationSimulation = "YES"
|
||||
notificationPayloadFile = "PushNotificationPayload.apns">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
|
|
|
@ -286,15 +286,29 @@ public struct AnimatedImage : PlatformViewRepresentable {
|
|||
// Refresh image, imageModel is the Source of Truth, switch the type
|
||||
// Although we have Source of Truth, we can check the previous value, to avoid re-generate SDAnimatedImage, which is performance-cost.
|
||||
if let name = imageModel.name, name != context.coordinator.imageLoading.imageName {
|
||||
var image: PlatformImage?
|
||||
#if os(macOS)
|
||||
let image = SDAnimatedImage(named: name, in: imageModel.bundle)
|
||||
image = SDAnimatedImage(named: name, in: imageModel.bundle)
|
||||
if image == nil {
|
||||
// For static image, use NSImage as defaults
|
||||
let bundle = imageModel.bundle ?? .main
|
||||
image = bundle.image(forResource: name)
|
||||
}
|
||||
#else
|
||||
let image = SDAnimatedImage(named: name, in: imageModel.bundle, compatibleWith: nil)
|
||||
image = SDAnimatedImage(named: name, in: imageModel.bundle, compatibleWith: nil)
|
||||
if image == nil {
|
||||
// For static image, use UIImage as defaults
|
||||
image = PlatformImage(named: name, in: imageModel.bundle, compatibleWith: nil)
|
||||
}
|
||||
#endif
|
||||
context.coordinator.imageLoading.imageName = name
|
||||
view.wrapped.image = image
|
||||
} else if let data = imageModel.data, data != context.coordinator.imageLoading.imageData {
|
||||
let image = SDAnimatedImage(data: data, scale: imageModel.scale)
|
||||
var image: PlatformImage? = SDAnimatedImage(data: data, scale: imageModel.scale)
|
||||
if image == nil {
|
||||
// For static image, use UIImage as defaults
|
||||
image = PlatformImage.sd_image(with: data, scale: imageModel.scale)
|
||||
}
|
||||
context.coordinator.imageLoading.imageData = data
|
||||
view.wrapped.image = image
|
||||
} else if let url = imageModel.url {
|
||||
|
|
Loading…
Reference in New Issue