如何将照片(或视频)从相机转换为NSData?

时间:2015-10-12 11:13:07

标签: ios swift nsdata alassetslibrary

在我的应用中,我拍照,然后使用ALAssetsLibrary将网址保存到它。此代码如下所示:

   ALAssetsLibrary().writeImageToSavedPhotosAlbum(image.CGImage, orientation: ALAssetOrientation(rawValue: image.imageOrientation.rawValue)!,
                completionBlock:{ (path:NSURL!, error:NSError!) -> Void in
                    if(error == nil){
                           path.save()
                           //.......
                    }
            })

我需要将我拍摄的照片转换为NSData对象。那么如何根据IOS 9.0指南替换此代码(我知道在IOS 9中不推荐使用ALAssetsLibrary)?如何将我的照片转换为NSData对象?

2 个答案:

答案 0 :(得分:1)

由于不推荐使用ALAssetsLibrary,您应该使用照片库。见下面的代码示例。

PHPhotoLibrary.sharedPhotoLibrary().performChanges({

    let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image)

    }, completionHandler: { (success, error) -> Void in

    if success {
        //image saved to photos library.
    }
})

如果你需要将图像转换为NSData,你可以简单地使用(如@ if-else-switch指出的那样)

UIImagePNGRepresentation(image)

希望有所帮助!

答案 1 :(得分:0)

对于照片/视频执行此操作:

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:@"url"]]];