如何从 PHPhotoLibrary 获取图像的位置?

Posted

技术标签:

【中文标题】如何从 PHPhotoLibrary 获取图像的位置?【英文标题】:How to get location of Image from PHPhotoLibrary? 【发布时间】:2017-12-04 13:17:39 【问题描述】:

由于不推荐使用 ALAssetLibrary Api,我们使用 phphotoLibrary 将图像保存到 PhotoAlbum

如果我们使用 ALAssetLibrary,我们可以获得保存图像的assetUri,但如果我们使用 PHPhotoLibrary,我们无法获得相同的结果。

assetUri 示例-

/Library/Developer/CoreSimulator/Devices/1ABD9386-B868-4B8D-9670-3F260D574569/data/Media/DCIM/100APPLE/

还有其他方法可以使用 PHPhotoLibrary 获得与上述相同的路径吗?

提前致谢

【问题讨论】:

【参考方案1】:

AssetUri 不适用于 PHPhotoLibrary。

我们可以改用request.PlaceholderForCreatedAsset.LocalIdentifier

UIImagePickerController controller = new UIImagePickerController 
      SourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum,
      ImagePickerControllerDelegate = new PickerDelegate(),
      MediaTypes = new string[]  UTType.Image 
;
this.PresentViewController(controller, true, null);


public class PickerDelegate: UIImagePickerControllerDelegate

    public override void FinishedPickingImage(UIImagePickerController picker, UIImage image, NSDictionary editingInfo)
    
        PHPhotoLibrary.SharedPhotoLibrary.PerformChanges(
            () => 
                PHAssetChangeRequest request = PHAssetChangeRequest.FromImage(image);
                string id = request.PlaceholderForCreatedAsset.LocalIdentifier;
            ,
            (bool success, NSError error) => 
            
        );
    

参考

How to get the URL of an image just added in PHPhotoLibrary

Get URL of a newly created asset, ios 9 style

【讨论】:

以上是关于如何从 PHPhotoLibrary 获取图像的位置?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHPhotoLibrary 从相机胶卷中获取相机点击的照片

从自定义相册 PHPhotoLibrary 目标 C 中删除图像

如何使用 PHPhotoLibrary 获取照片的日期

在 PHPhotoLibrary 中,photoLibraryDidChange 不会通知所有更新

如何使用 PHPhotoLibrary 将视频/图像写入保存的相册?

如何在 iOS/Swift 2 上使用 PHPhotoLibrary 保存具有自定义文件名的照片?