ios - Xamarin 形式:jamesmontemagno/MediaPlugin:在 IOS 应用程序中添加到 UI 时,所选图片正在旋转
问题描述
我跟着这个博客从画廊和相机拍照。但是当涉及到 IOS 的 UI 时,所选图片以右旋转的形式显示。问题仅在使用相机时出现,我对画廊没有任何问题。此功能在 android 和 UWP 中运行良好。
截图添加如下:
相机代码:
async void CameraClick()
{
try
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("Camera", "No camera available.", "OK");
return;
}
_mediaFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg",
AllowCropping = true
});
if (_mediaFile == null)
return;
profileImage.Source = ImageSource.FromStream(() =>
{
isPicture = true;
return _mediaFile.GetStream();
});
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Exception:>" + ex);
}
}
设备:IOS SE
媒体插件版本:3.1.1
我用来显示图像的控件:Xam.plugins.Forms.Imagecircle 2.0.2(对于 android 和 UWP,我使用的是 1.8.1)
图库图片工作正常,问题仅在使用相机拍照时出现。android 和 UWP 部分没有问题。
解决方案
原因:
这是一种常见的体验,即使在Xamarin
. 它是由iOS
.
UIImage 有一个属性
imageOrientation
,它指示 UIImageView 和其他 UIImage 消费者旋转原始图像数据。该标志很有可能被保存到上传的 jpeg 图像中的 exif 数据中,但您用来查看它的程序不支持该标志。
解决方案:
在 Github 中的Issues
部分jamesmontemagno/MediaPlugin
,有几个问题,比如你遇到的问题。似乎使用GetStreamWithImageRotatedForExternalStorage
将解决此问题。
可以参考: https ://github.com/jamesmontemagno/MediaPlugin/issues/333
另一种方式,您可以自己旋转图像。
以下是一些可能对您有所帮助的链接:
推荐阅读
- sql-server - SQL 事务 - 两个插入
- python-3.x - Brightway2 中的技术领域矩阵有多大
- javascript - Twitter分享弹窗成功响应
- c++ - c++中具有多参数构造函数的模板类的问题
- dialogflow-es - DialogFlow 中的代理训练
- java - 使用java apache poi在列CSV文件中断后获取字符串
- javascript - 添加在文本框中选中的总复选框
- c - 有没有办法系统地查询 sqlite3 行以将数据放入 C 数组中?
- html - 固定容器 div 时,嵌套的子 div 不可滚动
- c++ - 将 QPixmap 列表保存到 .ico 文件