signalapp / signalapp/Signal-iOS

When sharing an image subject to Signal, transparency is not preserved

Open
#5,666 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Acknowledged
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

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:
    image

  • Tap "Share...", Signal, then your target, and you'll see this:
    image

  • Go ahead and send it, and this is what's seen:
    image

  • 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:
    image

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

https://debuglogs.org/ios/6.43.0/8a8bff239cabad9dfd934b01b4c0a10f3f908b02f66584b379ae6e31cec6873a.zip

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.