MonoTouch:从 ALAssetsLibrary.AssetForUrl 中获取图像
Posted
技术标签:
【中文标题】MonoTouch:从 ALAssetsLibrary.AssetForUrl 中获取图像【英文标题】:MonoTouch: Getting an Image out of ALAssetsLibrary.AssetForUrl 【发布时间】:2012-09-11 01:09:02 【问题描述】:在 MonoTouch 中:
我正在将相机中的图像放入相册:
ALAssetsLibrary library = new ALAssetsLibrary();
library.WriteImageToSavedPhotosAlbum(photo.CGImage, meta, (assetUrl, error) =>
library.AssetForUrl(assetUrl, GotAsset, FailedGotAsset);
);
Photo
就在那里,运行良好。
在代表GotAsset
上,我试图取出图像,但只有缩略图在那里。图片在哪里?
void GotAsset(ALAsset asset)
//asset has only thumbnail info???
这是资产的样子:
【问题讨论】:
【参考方案1】:您不会在运行时看到设备上的每个属性,因为默认情况下,(托管)链接器已启用(Link SDK)。这将删除您的应用程序未使用的所有代码,包括属性(并节省大量 KB 和部署时间)。
您可以尝试通过添加您自己的资产(在模拟器中)在模拟器上进行调试(默认为不链接)。另一种方法是暂时禁用设备版本上的链接器。
在任何一种情况下,您的 ALAsset
都应该显示所有记录的属性。
【讨论】:
关于如何在 File.ReadAllBytes() 中准备图像文件的任何想法?我不能为此使用这个资产库网址。在这种特定情况下,我想将文件上传到服务器,因此我需要访问真实的文件路径。【参考方案2】:根据@Poupou 的帮助,这是我添加的代码:
void GotAsset(ALAsset asset)
ALAssetRepresentation rep = asset.DefaultRepresentation;
var iref = rep.GetImage();
if(iref!=null)
DoStuffWithUIImage(UIImage.FromImage(iref));
【讨论】:
以上是关于MonoTouch:从 ALAssetsLibrary.AssetForUrl 中获取图像的主要内容,如果未能解决你的问题,请参考以下文章
从 MonoTouch 访问 iCloud NSUbiquitousKeyValueStoreDidChangeExternallyNotification 详细信息
MonoTouch:从命令行创建 iOS AppStore-Version