2017-10-28 29 views
0

我想从资源库网址,以获取UIImage如何从资源库网址在Xamarin IOS得到的UIImage

我在xamarin IOS的​​开发应用,试图从一个给定的资产库得到一个UIImage对象-url。

使用ELCImagePickerViewController从图库中选取多个图像。 所有图像路径都添加到字符串数组列表中。
现在我需要使用Asset-Library-Url路径获取Byte[]中的所有图像。

指定的网址是:

资产库://asset/asset.JPG ID = 0E126068-14F9-431F-91B5-8BC397727656 & EXT = JPG

我试着它用以下方法:

static UIImage FromUrl(string uri) 
{ 
    using (var url = new NSUrl(uri)) 
    using (var data = NSData.FromUrl(url)) 
    return UIImage.LoadFromData(data); 
} 

但它总是返回null。 任何人都可以告诉我我在这里做错了吗?

+0

指https://stackoverflow.com/questions/3837115/display-image-from -url检索的从 - alasset合iphone –

回答

0

这些Url为ALAssetsLibrary,您将需要使用ALAssetsLibrary来访问它们。见下面的例子:

public Byte[] LoadAssetAsByteArray(string uri) 
{ 
    var nsUrl = new NSUrl(uri); 
    var asset = new ALAssetsLibrary(); 
    Byte[] imageByteArray = new Byte[0]; 
    UIImage image; 

    asset.AssetForUrl(nsUrl,(ALAsset obj) => { 

     var assetRep = obj.DefaultRepresentation; 
     var cGImage = assetRep.GetFullScreenImage(); 
     image = new UIImage(cGImage); 
     // get as Byte[] 
     imageByteArray = new Byte[image.AsPNG().Length]; 
     //imageView.Image = image; 
    }, 
    (NSError err) => { 
     Console.WriteLine(err); 
    }); 

    return imageByteArray; 
} 

有一个伟大的食谱上Xamarin Site使用UIImagePickerController我beleive会帮助你