Ios 字节数组到UIImage
在我的Xamarin.iOS应用程序中,我需要将一个字节数组转换为Ios 字节数组到UIImage,ios,xamarin,xamarin.ios,Ios,Xamarin,Xamarin.ios,在我的Xamarin.iOS应用程序中,我需要将一个字节数组转换为UIImage。我试过这个: var data = NSData.FromArray(myByteArray); var uiimage = UIImage.LoadFromData(data); 但这行不通。它创建了UIImage,但当我将其设置为UIImageView时,我什么也看不到。我在我的项目的Android平台上使用了相同的字节数组,效果很好。因此,我假设我尝试将其转换为UIImage的方法是错误的。我不确定您是如何
UIImage
。我试过这个:
var data = NSData.FromArray(myByteArray);
var uiimage = UIImage.LoadFromData(data);
但这行不通。它创建了
UIImage
,但当我将其设置为UIImageView
时,我什么也看不到。我在我的项目的Android平台上使用了相同的字节数组,效果很好。因此,我假设我尝试将其转换为UIImage
的方法是错误的。我不确定您是如何将数据下载到字节数组中的,但下面是使用NSUrlConnection
的示例:
// allow NSAllowsArbitraryLoads since this is a HTTP connection
var url = new NSUrl("http://example.com/foobar.jpg");
var data = NSUrlConnection.SendSynchronousRequest(NSUrlRequest.FromUrl(url), out var response, out var error);
var image = UIImage.LoadFromData(data);
ImageView1.Image = image;
注意:这是一个同步请求,请使用SendAsynchronousRequest
或在主线程外执行此操作
实际上,我错过的是NSAllowsArbiraryLoads许可证
您可以通过以下方式禁用所有ATS:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
NSAppTransportSecurity
NSAllowsArbitraryLoads
您最好可以在域级别执行此操作:
数据的第一个/结束字节
,因为它是JPEG,所以应该有.jpg对应的StartOfFile/EndOfFile。我不使用Xamarin,但这可能是大/小印度的问题吗?@Larme它在我的Android平台上工作,所以我不认为这是问题所在。@Darius如果问题显然是关于NSAllowsArbiraryLoads
缺失,那么myByteArray
将为零。因此,很明显,检查它的值可以指出问题出在下载部分。