signalapp / signalapp/Signal-iOS
When sharing an image subject to Signal, transparency is not preserved
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 12.2k
- Forks
- 3.5k
- PR merge metrics
- No merged PRs in 30d
Description
- I have searched open and closed issues for duplicates
- I am submitting a bug report for existing functionality that does not work as intended
- This isn't a feature request or a discussion topic
Bug description
On iOS 16 and 17, when selecting the subject of a photo with Apple's Photos app (Apple's docs) and sharing it to Signal, it has a white background instead of transparent.
Steps to reproduce
- Open a photo in the iOS Photos app
- Select the subject of the photo
- Share to Signal
Actual result:
The image has a while background in the preview and when received.
Expected result:
The image should have a transparent background in the preview and when received. This would match behaviors of other iOS apps. Gmail, Slack, and Facebook Messenger are some 3rd party iOS apps that handle the transparency correctly. The transparency is well supported in first-party iOS apps, like Messenger and Notes.
Screenshots
-
Selecting the subject of an image:
-
Tap "Share...", Signal, then your target, and you'll see this:
-
Go ahead and send it, and this is what's seen:
-
Tap on the received image to see the larger version, to see if the transparency has only been turned white in the thumbnail, and you'll see this:
Device info
Device: iPhone 11 Pro and iPhone 15 Pro
iOS version: iOS 16.7, 17.0.2, but I've seen this since the initial release of iOS 16 when this feature was added.
Signal version: 6.43.0.8
Link to debug log
Additional thought
I just wanted to share one additional thought. I've seen this sort of problem when an image is resized and effort isn't taken to preserve the transparency during the resize. It's something I've done in my own code, and seen in others. Just a suggestion for whoever investigates this. Of course, that's assuming the image isn't transcoded to a format that doesn't support transparency.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Photos-to-Signal share flow on the listed iOS versions and trace Signal-iOS's image import, preview, and send handling. Compare the shared image's alpha channel at each stage; done means the preview and received image retain the transparent background.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100