Tag: phasset

使用Photos Framework获取相机拍摄的照片的URL

我有一个应用程序,使用UIImagePickerController从相机和照片库检索图片。 在图像select器委托中,我只想保存所选图像的NSURL( UIImagePickerControllerReferenceURL )以节省内存。 当用户以后需要查看图像时,我直接从照片库中加载PHCachingImageManager。 现在 – 这整个事情与用户从图书馆中select的图片,但没有与相机直接拍摄的照片(因为没有url)很好的作品。 我目前正在试图用PHAsset保存图片,但我不知道如何获得保存图片的NSURL。 这是我一直在做的事情: func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { picker.dismissViewControllerAnimated(true, completion: nil) let pickedImage = info[UIImagePickerControllerOriginalImage] as! UIImage if picker.sourceType == .Camera { // When taking a picture with the camera, store it in the user roll PHPhotoLibrary.sharedPhotoLibrary().performChanges( { () -> Void in // save […]

如何使用PhotoKit访问慢动作video的NSData / NSURL

使用新的Photo框架,我可以使用requestImageDataForAsset访问PHAssets的NSData 。 我也可以使用返回的info NSDictionary的PHImageFileURLKey来访问文件的URL。 [[PHImageManager defaultManager] requestImageDataForAsset:asset options:nil resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { //imageData contains the correct data for images and videos NSLog(@"info – %@", info); NSURL* fileURL = [info objectForKey:@"PHImageFileURLKey"]; }]; 这适用于图像和普通video。 但是,当资产是PHAssetMediaSubtypeVideoHighFrameRate(慢动作video)时,返回的数据对应于包含video的第一帧(NSData,dataUTI和info字典指向相同的jpg文件)的JPG文件。 例如,这是为慢动作video返回的URL和dataUTI: PHImageFileURLKey =“file:///var/mobile/Media/PhotoData/Metadata/DCIM/100APPLE/IMG_0642.JPG”; PHImageFileUTIKey =“public.jpeg”; 为什么发生这种情况? 如何访问慢动作videoNSData / NSURL,而不是这个JPG预览?

iOS8 Photos Framework:如何获取PHAsset的名称(或文件名)?

我试图获得使用PHAssets的图像名称。 但我找不到文件名的元数据或任何获取图像名称的方法。 有没有不同的方式来获取文件名?

用phimagemanager保存图像到自定义相册?

我正在制作一个应用程序,用AVFoundation拍照,我想将它们保存到一个自定义相册,然后我可以查询和显示在我的应用程序。 (除非用户需要,否则我不希望在普通照片中包含这些内容)我无法在Swift中find任何显示如何执行此操作的内容。 有没有不同的方式,我应该这样做? 我在SO上find了这个例子,但对我来说没有任何意义,我也无法使它起作用。 func savePhoto() { var albumFound : Bool = false var assetCollection: PHAssetCollection! var photosAsset: PHFetchResult! var assetThumbnailSize:CGSize! // Create the album if does not exist (in viewDidLoad) if let first_Obj:AnyObject = collection.firstObject{ //found the album self.albumFound = true self.assetCollection = collection.firstObject as PHAssetCollection }else{ //Album placeholder for the asset collection, used […]