如何在Xamarin IOS中从资源库URL获取UIImage

时间:2017-10-28 09:49:55

标签: c# xamarin.ios

我想从资源库网址

获取UIImage

我是xamarin ios中的开发应用程序,试图从给定的Asset-Library-Url获取UIImage对象。

使用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。 谁能告诉我这里我做错了什么?

1 个答案:

答案 0 :(得分:0)

这些网址适用于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 SiteUIImagePickerController有一个很棒的食谱我相信会帮助你