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

How can I convert photo (or video) from camera to NSData?

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

   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 准则替换此代码(我知道 ALAssetsLibrary 在 IOS 9 中已弃用)?以及如何将我的照片转换为 NSData 对象?

对于 Photo/Video 这样做:

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

由于 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)

希望对您有所帮助!