-
-
Notifications
You must be signed in to change notification settings - Fork 361
4.4.5-beta iOS 13.2 Image result rotated 90 or 180 degree #760
Comments
Still seems to be having rotation issues with 4.4.6-beta |
So with SaveToAlbum=true, the photo is saved in the correct orientation, but in my Forms app the ImageSource displays wrong for portrait images... 🤔 |
Are you using "PickPhoto" or "PickPhotos"? |
'PickPhoto' and 'PickPhotos' are both working, the rotation issue happens when using 'TakePhoto', the photo result after tapping 'Use Photo' gets rotated. |
We had the same issue, but the version of iOS did not matter (this is happening on 12.4.X), so I'm not entirely sure this is the same problem. |
using media plugin 4.0.1.5, with the same app build (build with xcode 10), also having issues.
|
I can confirm this problem too. The image saved to the album is rotated correctly but the ImageStream is rotated wrong. Only on iOs, Android works. This problem occurs with TakePhotoAsync AND PickPhotoAsync. |
Looks only beta updates are being done. Is beta safe to use in Production Environment. When will be a release to the nuget ? |
I think it's due to the EXIF data being stripped out from the photo(s) as they're parsed back to the main application. The EXIF data holds information about how to rotate the photo. |
My users started to complain about this issue, so I tested it myself. I'm experiencing this exact issue after updating to iOS 13.2. Any possibility of a fix for this soon? My production app is suffering. |
@jamesmontemagno Hey James, we really appreciate this plugin, but right now it cannot be used at all for iOS 13.2. This image rotation issue is Critical. It isn't possible to take an image with the correct rotation, and it is affecting all users. Can we please get an update on this? I tried setting AllowCropping to false, but that didn't help. I tried setting SaveToAlbum to true, but that didn't work either. We really need a fix for this fast! This has been a know issue for a couple weeks now. Please help! |
Some of our users also experience this issue after upgrading to 13.2. I'm currently using 4.3.1-beta. |
Same problem here on iOS 13.2.2 + 4.0.1.5. Worked fine on iOS 13.1.2. |
Similar problem here with iOS 13.2 and plugin version 4.0.1.5 |
Yes, we also see this problem on iOS 13.2 and 13.2.2 with 4.4.6-beta. No EXIF data no matter whether you pick photo or take a new. This is very serious :-(. |
We're also seeing this issue which is isolated to iOS 13.2.x Tested on many iOS devices and after updating from 13.1.x to 13.2.x the images are now rotated. Is there an ETA on a fix for this please? |
As a work around, if you set the following:
Then this will not rotate the image e.g.
|
Yes, but unfortunately the ability to read the metadata (EXIF) from the picked file is a significant feature in our use of the plugin. |
I can confirm this problem too. |
This problem is with iOS13 and 4.0.1.5 and any phone. We have experienced this issue with iPhone 5S, 6, 6S and 7. We can't use SaveMetaData = false as metadata (EXIF) from the picked file is a significant feature for our app. Could we have fix for this bug ASAP please??? |
Thanks @klogeaage for the repro of the built in image. I do see that being rotated weirdly. It looks like the exif data is coming in just fine on the file, so if you using a library that reads the exif data it will be there. Else, it looks like you may need to use: GetStreamWithImageRotatedForExternalStorage When I use this it is just fine. I can also confirm that this works fine on iOS 12.2 as well. |
So, this looks like it is a bug with iOS 13.2, when calling: return UIImage.FromImage(cgi, 1.0f, orientation); This function is called when you resize the image. If you mark the image as: PhotoSize = PhotoSize.Full you will not see the rotation at all when using the normal So, if you are resizing the image you should request the rotated image back to display. If you are not then you can use the normal stream. A question I have though is if anyone is experiencing this in applications compiled against Xcode 10 and iOS 12 or is everyone compiling against Xcode 11 and iOS 13? |
After talking with the team and looking at the bindings, I really think that this is an iOS 13.2 bug and not a bug in the library itself. I have walked through a few work arounds for everyone here to validate in your own app. |
Thanks for the update James. I guess we can all feed this back to Apple for them to investigate. |
Thanks James, the workarounds are enough for us. |
Alright, mind blown here..... Apple decided to randomly remove an API from iOS 13: if(UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
{
transform = new CILanczosScaleTransform
{
Scale = scale,
InputImage = sourceImage,
AspectRatio = 1.0f
};
}
else
{
transform = new CILanczosScaleTransform
{
Scale = scale,
Image = sourceImage,
AspectRatio = 1.0f
};
}
Using the new InputImage seems to rotate correct! pushing out a new package :) |
Or I hope that is it. Still validating. |
Classic Apple... |
Looks like that wasn't it. So a few workarounds that I have validated:
My only other assumption is that the UIImageView maybe changed how it renders items out.... not sure though. |
Nope, that is part of the problem that no EXIF data is available with the file. I use the So I'm sorry, but I don't think those of us that depend on EXIF data have a workaround. |
Can confirm that 13.3 doesn't not fix it. I think it has to do with metadata somewhat. A bit confusing that if you say save metadata to false that it works. |
@jamesmontemagno It's also working for me if I set "SaveMetaData=false;" for both PickPhotoAsync and TakePhotoAsync. Versions: |
Hi, Not a solution but to just add some info. Images in iOS are not actually rotated after it has been taken from camera, it just saves the exif orientation metadata for the client consumption. It was claimed that when the image is viewed on the default image app in Windows, it doesn't honor the exif metadata and just draws the image thus producing incorrect results sometimes. I have also reproduced the bug when I used this exif reader tool to view the image. The image I took displays incorrectly on that site but displays correctly when viewed directly using Chrome for Mac. |
I can confim having these issues, and i'm glad this thread proves i'm not the only one! We don't call GetStream(), but just upload the raw file after When needed, we rotate it on the backend, depending on the EXIF data, which is missing for our users since iOS 13.2. I hope Apple will fix this soon, otherwise we'll have to give the workarounds a go but that would require an app update unfortuantely... |
I think the $100 bounty should go to #747 (comment) Used their code instead of the wacky manual copy-pasteover code in SaveImageWithMetadata and all is right in the world again.
|
one word of caution is that I have no use for PNG in my app and have no idea if the settings in WritePngRepresentation are ideal. |
One last note while i'm running builds on a variety of devices. No issues with backwards compatibility going as far back as iOS 9.3.4. |
Cools, I am putting in code that only applies this to iOS 13+ as that was the main impact. Thanks for testing it out and I will figure out the bounty stuff when tested out. |
@MatthewKapteyn Thanks very much for appreciating it. We need it very badly. I spent a long time to create a patch in my code. I am glad that you guys liked it. I will update my project for Media Plugin |
can try latest 4.4.7-beta |
Good work :-). |
Hi James EDIT - On Mac, updating nuget works, so I am god for now :-) The beta introduces further dependencies, can I overcome this? Severity Code Description Project File Line Suppression State Severity Code Description Project File Line Suppression State |
So, you should use 5.0.0-beta of permisions plugin else you will run into issues. Make sure any other library you are using from me is using this version. so like geolocator or other stuff. For System.Drawing.Common... oddd it shouldn't be there. Make sure you are using package refereneces: see: MvvmCross/MvvmCross#3531 |
I'll push out 4.4.8, let me know if that helps. |
Still some strange issue on nuget WS2019/Windows. Severity Code Description Project File Line Suppression State On Mac - it works perfekt. |
Possibly related to: xamarin/xamarin-macios#7249 |
thanks @jamesmontemagno it fixed rotation and exif issue but still one minor issue. In my app I am using TakephotoSync to click photo and then displaying it on page after photo is clicked, for displaying photos I have written code in OnAppearing() of the page, but after TakePhotoSync its not calling OnAppeatring(), is this something can you please check Thanks, |
@ClausElmann you will need to convert to PackageReferences in your app. It is super simple to do. |
Hi @jamesmontemagno , After updating to 4.4.8, issue still exist on iOS 13.2.3 using PickPhotoAsync and SaveMetadata = false. Can you or someone please let me know what's your options to make it work on iOS? Below is my code for reference. Thank you in advance |
@jamesmontemagno when can we get stable version with rotation and exif data fix please Thanks |
I am having this issue after upgrading to iPadOS 13.3. |
Thanks. Comment is now obsolete. |
Again happens on iOs 13.7 |
Hi James,
Thanks for pushing out 4.4.3-5 betas quickly!
iOS 13.2 doesn't crash when tapping 'Use Photo' anymore 👍 but if I take a portrait image, the result ends up rotated 90.
Taking a landscape image works one way, but the other way will rotate 180 upside-down.
Apple making things difficult... (iPhone 8)
The text was updated successfully, but these errors were encountered: