signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.64k stars 2.67k forks source link

Signal modifies/compresses/resizes images sent in chat and then saved back to phone memory #3756

Closed qubecub closed 4 years ago

qubecub commented 4 years ago

Bug Description

Original photos/images sent via Signal chat are modified in the background without a warning by the app!

The same photograph extracted/downloaded/saved from Signal chat back to the phone memory are only a fraction of the size, e.g:

  1. orinigal size of the photo before posting on Signal: 1.5MB
  2. size of the same photo extracted/saved from Signal chat: 300KB (!!!)

What happened?

This is unacceptable to modify any user files without a warning or option to "keep original file size" vs "compress / modify".

Be aware that many files contain extra data, e.g. metadata or even steganography embedded information. When Signal modifies the files it damages them irreversibly.

Signal app should not be tempted to shrink/compress images to optimize memory usage. Such action not only damages file/image quality (resolution,compression factor) but also damages metadata and embedded steganography files.

Please keep all the files, including images/photos, unchanged when posting and saving to/from Signal, regardless of their original size.

Steps to Reproduce

The same photograph extracted/downloaded/saved from Signal chat back to the phone memory are only a fraction of the size, e.g:

  1. step one: orinigal size of the photo (JPG) before posting on Signal: 1.5MB
  2. step two: send that file using Signal chat.
  3. step three: extract/save that photo from Signal chat back to phone memory: size shrunk to 300KB (!!!)

What happened to the file? Why did it shrink? How? What's the compression algorithm? Where is warning to users about such background modification?

Actual Result:

Photo/image (JPG) extract / saved from Signal chat back to the phone memory is modified to a fraction of its original size (300KB vs 1.5MB of the original size).

Expected Result:

Signal app should not be tempted to shrink/compress images to optimize memory usage. Such action not only damages file/image quality (resolution,compression factor) but also damages metadata and embedded steganography files.

Please keep all the files, including images/photos, unchanged when posting and saving to/from Signal, regardless of their original size.

Screenshots

Platform Info

Signal Version:

4.49.18

Operating System:

Android Linux 6.0 Android 7.1.2

Linked Device Version:

Link to Debug Log

scottnonnenberg-signal commented 4 years ago

This appears to be an Android-specific issue, without any relation to Signal Desktop. I'm going to close it. You can open it again in the Android repository: https://github.com/signalapp/Signal-Android/issues

qubecub commented 4 years ago

This is not Android specific issue. I have tested it on Signal Desktop only scenario and the issue persists. Here is an example:

  1. open Signal Desktop and send yourself a photograph in a chat (e.g. 1.5MB)
  2. the photograph appears in a chat.
  3. hover over the photograph in Signal Desktop and select 'download'/'save' option to extract the image from the chat to a disk.
  4. Photograph gets extracted but the size of it is oly 300KB (!)

As you can see I haven't used Android OS at all, but Signal Desktop version only and the photo gets compressed/resized without a warning.

Please re-open this issue as it needs investigation and being solved. Thank you.

scottnonnenberg-signal commented 4 years ago

If you want to send uncompressed images, please send them in some sort of container we won't compress, like a zip file. We don't want to wasted your recipients' bandwidth, so we do compress images before sending.

qubecub commented 4 years ago

Yes, I've already researched and tested the workaround with a container/zip file. Thank you. It does work although puts an extra effort to prepare it before sending.

I would still like to request an option in Signal App Settings which would flick enable/disable image compression/modification before sending in signal. I'm certain some users (like me), who like custom-level controls in apps they are using, would appreciate it greatly. Please just consider it for a future release. Thank you.

scottnonnenberg-signal commented 4 years ago

Okay, we're tracking that feature request here: https://github.com/signalapp/Signal-Desktop/issues/2026

qubecub commented 4 years ago

That's excellent.

Having photographs pixeled/ impage quality damaged as the of compression is one of the points I raised in my initial post.

Most importantly though, being able to send completely unaltered images, with all original metadata, resolution, quality and also potentially embedded stenography encryption - if desired by users. That would be perfect.

Signal app setting to 'don't modify/compress image files' would simply do the job.

Thank you! (counting days to see this feature rolled out in the near future).