2015-02-04 7 views
17

사진이 있습니다. 사용자가 Instagram에서 공유 할 수 있기를 원하며 사진의 로컬 파일 디렉토리를 가져와야합니다.PHAsset의 로컬 파일 경로 가져 오기

그러나 PHAsset으로 내 이미지를 가져오고 있습니다 (다른 모든 대답은이 주제를 다룰 것입니다).

PHAsset 설명서를 보면 '로컬 디렉토리'변수가 표시되지 않습니다.

새로운 ios8 포토 프레임 워크를 사용하여 사용자 카메라 롤에서 사진의 경로를 얻는 방법을 알고 있습니까?

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

는 자산이 PHAssetMediaType.Image 있는지 확인하거나, 그렇지 않으면 충돌 할 수 있습니다 : 여기

는 사용자의 사진 롤에

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

를 사용하여 콘텐츠를 편집 입력을 마지막 이미지를로드 내 코드입니다 선택적 포장 풀기.

+2

시뮬레이터에서 작동 중이지만 input.fullSizeImageURL에서 이미지를로드 할 수 없습니다. – Abhishek

0

예, PHAsset을 ALAsset으로 변환해야합니다. 그런 다음 ALAsset에서 URL을 가져올 수 있습니다. 이와 비슷한 내용 : PHImageManager.defaultManager(). requestAVAssetForVideo ....

-1

콘텐츠 편집 세션을 시작하기위한 자산 정보를 요청합니다.

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

전체 크기 이미지 데이터가 포함 된 파일의 URL입니다.

@property(readonly, copy) NSURL *fullSizeImageURL;