From bd72fceb4a88d1b57d700824de749069324e6e6a Mon Sep 17 00:00:00 2001 From: Bugen Zhao Date: Wed, 28 Jan 2026 20:47:58 +0800 Subject: [PATCH] fix: use original file when sharing image with alpha channel Signed-off-by: Bugen Zhao --- app/Shared/Models/ViewingImageModel.swift | 1 + app/iOS/Views/NewImageViewer.swift | 3 +++ 2 files changed, 4 insertions(+) diff --git a/app/Shared/Models/ViewingImageModel.swift b/app/Shared/Models/ViewingImageModel.swift index 57c2c901..b67f0f7f 100644 --- a/app/Shared/Models/ViewingImageModel.swift +++ b/app/Shared/Models/ViewingImageModel.swift @@ -40,6 +40,7 @@ extension PlatformImage { var isPlainImage: Bool { if sd_isAnimated { return false } + if cgImage?.alphaInfo ?? .none != .none { return false } switch utType { // This covers almost all common image formats in use. diff --git a/app/iOS/Views/NewImageViewer.swift b/app/iOS/Views/NewImageViewer.swift index 214c067d..d8827c00 100644 --- a/app/iOS/Views/NewImageViewer.swift +++ b/app/iOS/Views/NewImageViewer.swift @@ -25,6 +25,9 @@ struct ViewingImageView: View { DispatchQueue.global(qos: .userInitiated).async { // In case the constructor is heavy, let's do it in a background thread. let transferable = TransferableImage(url: url, image: image, forceFile: forceFile) + if transferable == nil { + logger.warning("Failed to create transferable for \(url)") + } DispatchQueue.main.async { self.transferable = transferable updateCurrentTransferable()