Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Conversation

@juliocbcotta
Copy link
Contributor

Description

This PR fixes (or tries to fix) orientation problems in the displayed images.
It uses the Exif information to normalize the image rotation so the image is always displayed correctly.
It will not solve all cases, as there are images without the correct Exif information, but will solve cases where the picture was taken with the phone up side down.

Related Issues

flutter/flutter#35334
Solving in the framework would be the best solution, but I think it may take some time to land if we wait the framework.

Breaking change

It will always create a new image file on Android. The current implementation sometimes creates an image file, that the developer already need to clear up after using the image if a resize was required. With the orientation fix we need a new file every time.

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • My PR includes unit or integration tests for all changed/updated/fixed behaviors (See [Contributor Guide]).
  • All existing and new tests are passing.
  • I updated/added relevant documentation (doc comments with ///).
  • The analyzer (flutter analyze) does not report any problems on my PR.
  • I read and followed the [Flutter Style Guide].
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I updated pubspec.yaml with an appropriate new version according to the [pub versioning philosophy].
  • I updated CHANGELOG.md to add a description of the change.
  • I signed the [CLA].
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
  • No, this is not a breaking change.

@juliocbcotta juliocbcotta requested a review from cyanglaz as a code owner July 19, 2019 06:03
Copy link
Contributor

@cyanglaz cyanglaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution! Ideally, this should be fixed from the framework. I do see your point to have it land sooner. However, I still need more time to verify if the changes are good especially for each transform.

I'm following the initial PR review policy, this PR isn't trivial to review so I'm labeling it with "backlog" and we will prioritize according to the issue's priority.

Relevant issue: flutter/flutter#35334

@@ -0,0 +1,101 @@
package io.flutter.plugins.imagepicker;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we keep the file name the same for this PR? Renaming the file keeps the diff hard to review in Github.

matrix.setRotate(180);
break;
case ExifInterface.ORIENTATION_FLIP_VERTICAL:
matrix.setRotate(180);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't it just be matrix.setScale(1, -1) ?

@juliocbcotta
Copy link
Contributor Author

The merge of this PR is not trivial.
I am will be closing it and spending some time trying to improve other aspects this plugin or others.

@juliocbcotta juliocbcotta deleted the plugin/image_picker_image_rotation branch July 31, 2019 23:13
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants