如何从URL加载图像在Xamarin.iOS
问题描述:
当我拿起一张照片从图库我有这样的事情:如何从URL加载图像在Xamarin.iOS
NSUrl referenceURL = e.Info[new
NSString("UIImagePickerControllerReferenceURL")] as NSUrl;
//imageURL = referenceURL.AbsoluteString;
imageURL = referenceURL.AbsoluteUrl.ToString();
string path = referenceURL.Path;
NSUrl url1 = referenceURL.FilePathUrl;
NSUrl url2 = referenceURL.FileReferenceUrl;
现在我试图加载从URL中的形象:
var url = new NSUrl(imageURL);
var data = NSData.FromUrl(url);
defectImage.Image = UIImage.LoadFromData(data);
但data
仍为空。
什么是从URL加载图像的正确方法?
注意:url1和url2只是例子。 path
是类似于=“/imagename.jpg”
也许我在错误的方式检索URL?有很多方法来获得路径/网址。
答
由于这些图片网址“资产库”的基础,所以你需要去通过ALAssetsLibrary
访问它们:
var url = e.Info[UIImagePickerController.ReferenceUrl] as NSUrl;
var asset = new ALAssetsLibrary();
UIImage image;
asset.AssetForUrl(
url,
(ALAsset obj) =>
{
var assetRep = obj.DefaultRepresentation;
var cGImage = assetRep.GetFullScreenImage();
image = new UIImage(cGImage);
// Do something with "image" here... i.e.: assign it to a UIImageView
imageView.Image = image;
},
(NSError err) =>
{
Console.WriteLine(err);
}
);
注:你真的应该开始使用照片框架如果您不必支持iOS 7客户端....
Assets Library框架自iOS 9.0起弃用。相反,使用照片框架,而iOS 8.0和更高版本则提供更多功能和更好的性能来处理用户的照片库。
这实在是难以阅读苹果文档,并将其转换为C#的,如果你开始在xamarin.iOS – raymondis
发展@raymondis你是对的,它帮助了很多看' Swift'代码的例子,当你看到Apple文档时,你可以*通常*直接转换为'Obj-C'。 – SushiHangover
噢,很棒的提示!非常感谢你!! – raymondis