【问题标题】:How can i get UIImage from Asset Library Url in Xamarin IOS如何从 Xamarin IOS 中的 Asset Library Url 获取 UIImage
【发布时间】:2017-10-28 22:26:47
【问题描述】:

我想从资源库 URL 中获取 UIImage

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

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

给定的网址是:

assets-library://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。 谁能告诉我我在这里做错了什么?

【问题讨论】:

标签: c# xamarin.ios


【解决方案1】:

这些网址用于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 有一个很棒的食谱,我相信它会对您有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2018-01-09
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多