5

在 MonoTouch 中:

我正在将相机中的图像放入 PhotoAlbum:

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???
    }

这是资产的样子:

在此处输入图像描述

4

2 回答 2

4

您在运行时看不到设备上的每个属性,因为默认情况下,(托管)链接器已启用(Link SDK)。这将删除任何代码,包括您的应用程序未使用的属性(并节省大量 KB 和部署时间)。

您可以尝试通过添加您自己的资产(在模拟器中)在模拟器上调试它(默认为Don't link)。另一种方法是暂时禁用设备版本上的链接器。

在任何一种情况下,您ALAsset都应该显示所有记录的属性。

于 2012-09-11T12:18:56.353 回答
1

基于@Poupou 的帮助,这里是我添加使其工作的代码:

    void GotAsset(ALAsset asset)
    {
        ALAssetRepresentation rep = asset.DefaultRepresentation;
        var iref = rep.GetImage();
        if(iref!=null)
            DoStuffWithUIImage(UIImage.FromImage(iref));
    }
于 2012-09-11T15:25:26.767 回答