20

ユーザーが 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)
    }

}
4

6 に答える 6

13

コンテンツ編集入力を使用:

asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions()) { (input, _) in
        let url = input.fullSizeImageURL
}

PHAssetMediaType.Imageオプションをアンパックすると、アセットがクラッシュする可能性があることを確認してください。

于 2015-03-05T13:41:51.267 に答える
-1

はい、PHAsset を ALAsset に変換する必要があります。その後、ALAsset から URL を取得できます。このようなもの: PHImageManager.defaultManager().requestAVAssetForVideo....

于 2015-10-29T08:31:38.363 に答える