2015-02-04 4 views
17

У меня есть фотография, которую я хочу, чтобы мой пользователь мог делиться на Instagram, и мне нужно получить локальный каталог файлов для фотографии.Получить локальный путь к файлу PHAsset

Однако я получаю свои изображения как PHAsset (а не ALAsset, все остальные ответы, похоже, охватывают эту тему).

Глядя на документацию PHAsset, я не вижу переменную 'local directory'.

Знаете ли вы, как я могу получить путь к фотографии из ролика камеры пользователей, используя новую инфраструктуру 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) 
    } 

} 

ответ

7

Использование содержимого ввода для редактирования:

asset.requestContentEditingInputWithOptions(PHContentEditingInputRequestOptions()) { (input, _) in 
    let url = input.fullSizeImageURL 
} 

Убедитесь, что актив PHAssetMediaType.Image или иначе может произойти сбой при распаковывая необязательный.

+2

input.fullSizeImageURL не может загрузить изображение на устройство, хотя оно работает на симуляторе – Abhishek

0

Да, вы должны преобразовать PHASset в ALAsset, тогда вы можете захватить URL-адрес от ALAsset. Что-то вроде этого: PHImageManager.defaultManager(). RequestAVAssetForVideo ....

-1

Запросы информации об активах для начала сеанса редактирования контента.

- (PHContentEditingInputRequestID)requestContentEditingInputWithOptions:(PHContentEditingInputRequestOptions *)options 
                 completionHandler:(void (^)(PHContentEditingInput *contentEditingInput, NSDictionary *info))completionHandler; 

URL-адрес файла, который содержит полноразмерные данные изображения.

@property(readonly, copy) NSURL *fullSizeImageURL; 

 Смежные вопросы

  • Нет связанных вопросов^_^