Получить локальный путь файла PHASset
У меня есть фотография, которую я хочу, чтобы мой пользователь мог делиться на Instagram, и мне нужно получить локальный каталог файлов фотографии.
Однако я получаю свои изображения как PHAsset (а не ALAsset, все остальные ответы, похоже, охватывают эту тему).
Глядя на документацию PHAsset, я не вижу переменную "локального каталога".
Знаете ли вы, как я могу получить путь к фотографии из ролика камеры пользователей, используя новую инфраструктуру ios8 Photo?
Вот мой код для загрузки последнего изображения в фотоальбом пользователей
public func loadLastPhotoIntoGalleryIcon()
{
if(PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.Authorized)
{
return
}
var fetchOptions:PHFetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
var fetchResult:PHFetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)
var lastAsset:PHAsset = fetchResult.firstObject as PHAsset
var options:PHImageRequestOptions = PHImageRequestOptions()
options.version = PHImageRequestOptionsVersion.Current
PHImageManager.defaultManager().requestImageForAsset(lastAsset, targetSize: _view.getGalleryIconSize(), contentMode: PHImageContentMode.AspectFill, options: options)
{
(result, objects) -> Void in
self._view.setGalleryIcon(result)
}
}
Ответы
Ответ 1
Используйте вход для редактирования содержимого:
asset.requestContentEditingInputWithOptions(PHContentEditingInputRequestOptions()) { (input, _) in
let url = input.fullSizeImageURL
}
Убедитесь, что ресурс PHAssetMediaType.Image
или иначе он может упасть при распаковке необязательного.
Ответ 2
Да, вы должны преобразовать PHAset в ALAsset, тогда вы можете захватить URL-адрес от ALAsset.
Что-то вроде этого:
PHImageManager.defaultManager(). RequestAVAssetForVideo....
Ответ 3
Запросит информацию об активах для начала сеанса редактирования содержимого.
- (PHContentEditingInputRequestID)requestContentEditingInputWithOptions:(PHContentEditingInputRequestOptions *)options
completionHandler:(void (^)(PHContentEditingInput *contentEditingInput, NSDictionary *info))completionHandler;
URL-адрес файла, который содержит полноразмерные данные изображения.
@property(readonly, copy) NSURL *fullSizeImageURL;