partial void BtnClick(UIKit.UIButton sender) { PHFetchResult fetchResults = PHAsset.FetchAssets(PHAssetMediaType.Image, null); for (int i = 0; i < fetchResults.Count; i++) { //fetching Result PHAsset phAsset = (PHAsset)fetchResults[i]; String fileName = (NSString)phAsset.ValueForKey((NSString)"filename"); PHImageManager.DefaultManager.RequestImageData(phAsset, null, (data, dataUti, orientation, info) => { var path = (info?[(NSString)@"PHImageFileURLKey"] as NSUrl).FilePathUrl.Path; //Stream stream = System.IO.OpenRead((String)path); Stream stream = new FileStream(path, FileMode.Open, FileAccess.Read); }); } }
static FileResult DictionaryToMediaFile(NSDictionary info) { if (info == null) { return(null); } PHAsset phAsset = null; NSUrl assetUrl = null; if (Platform.HasOSVersion(11, 0)) { assetUrl = info[UIImagePickerController.ImageUrl] as NSUrl; // Try the MediaURL sometimes used for videos if (assetUrl == null) { assetUrl = info[UIImagePickerController.MediaURL] as NSUrl; } if (assetUrl != null) { if (!assetUrl.Scheme.Equals("assets-library", StringComparison.InvariantCultureIgnoreCase)) { return(new UIDocumentFileResult(assetUrl)); } phAsset = info.ValueForKey(UIImagePickerController.PHAsset) as PHAsset; } } if (phAsset == null) { assetUrl = info[UIImagePickerController.ReferenceUrl] as NSUrl; if (assetUrl != null) { phAsset = PHAsset.FetchAssets(new NSUrl[] { assetUrl }, null)?.LastObject as PHAsset; } } if (phAsset == null || assetUrl == null) { var img = info.ValueForKey(UIImagePickerController.OriginalImage) as UIImage; var imgUrl = info.ValueForKey(UIImagePickerController.ImageUrl) as NSString; if (img != null) { var rotatedImg = CorrectImageRotation(img); return(new UIImageFileResult(rotatedImg ?? img)); } } if (phAsset == null || assetUrl == null) { return(null); } string originalFilename; if (Platform.HasOSVersion(9, 0)) { originalFilename = PHAssetResource.GetAssetResources(phAsset).FirstOrDefault()?.OriginalFilename; } else { originalFilename = phAsset.ValueForKey(new NSString("filename")) as NSString; } return(new PHAssetFileResult(assetUrl, phAsset, originalFilename)); }