Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Respect image orientation during resizing #2743

Open
ctsims opened this issue Feb 15, 2024 · 5 comments
Open

Respect image orientation during resizing #2743

ctsims opened this issue Feb 15, 2024 · 5 comments
Labels
💎 Bounty Issues eligible for bounty rewards, inviting community collaboration bounty-sep-24 Bounties published in September 2024

Comments

@ctsims
Copy link
Member

ctsims commented Feb 15, 2024

Bug Description

When image resizing is applied to captured images, EXIF data is currently getting stripped.

Current Behavior

Since most Android cameras do not natively rotate the pixels in a photo but instead set the orientation in EXIF data, resized images do not display in the same orientation as the original captured photo

Expected Behavior

Resized images should maintain the correct orientation as the original captured photo.

Reproduction Steps

Note: These steps assume you have basic knowledge of navigating and using the CommCare platform. If you are unfamiliar with how to perform basic setup steps, a getting started guide is available here.

  1. Create a CCHQ app that captures images.
  2. Open the camera app and take a picture
    • Check and note the image’s EXIF orientation data. You can use free online platforms like Ezgif / Metadata2Go to do so.
  3. Install the app on an Android device
  4. When you get to a screen with an image capture question, capture the photo by choosing the above photo you clicked from your phone.
  5. After form submission, navigate to Submit History report on HQ and download the attachment
    • Check the resized image’s EXIF orientation data
  6. Observe that the resized image on HQ does not include the orientation data of the original captured photo.

Possible Solution

Passing through some EXIF information during the resizing process or reading.

Additional Information/Context

Keep in mind that it may not be possible to replicate the issue on all devices.

Environment details (OS name and version, etc.)

No response

@ctsims
Copy link
Member Author

ctsims commented Feb 15, 2024

Other EXIF respect use case: #2689

@kiran-tripathy kiran-tripathy added the bounty-sep-24 Bounties published in September 2024 label Aug 22, 2024
@kiran-tripathy
Copy link

/bounty $150

Copy link

algora-pbc bot commented Sep 17, 2024

💎 $150 bounty • Dimagi, Inc

This issue is eligible for rewards from CommCare's Open Source Bounty Program.

Contribution Prerequisites

Before you proceed, please read through the details of the CommCare Bounty Program

  1. Make sure that you meet the eligibility criteria and have fulfilled all the requirements
  2. We recommend creating appropriate accounts and signing the CLA ahead of time if you are planning on pursuing a bounty for your open source contribution

Steps to solve

  1. Start working: Comment /attempt #2743 with your implementation plan
  2. Submit work: Create a pull request including /claim #2743 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to dimagi/commcare-android!

Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🟢 @melmathari Nov 24, 2024, 6:37:44 PM WIP

@algora-pbc algora-pbc bot added the 💎 Bounty Issues eligible for bounty rewards, inviting community collaboration label Sep 17, 2024
@melmathari
Copy link

@kiran-tripathy should be resolved in my latest PR.. #2902

The orientation data is preserved:
During raw copy creation
During image scaling
In the final saved image
To test this specific aspect:
Take a photo in different orientations (portrait/landscape)

@melmathari
Copy link

melmathari commented Nov 24, 2024

/attempt #2743

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 Bounty Issues eligible for bounty rewards, inviting community collaboration bounty-sep-24 Bounties published in September 2024
Projects
None yet
Development

No branches or pull requests

3 participants