# Camera **Repository Path**: XiaoYanMaNong/Camera ## Basic Information - **Project Name**: Camera - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SZKImagePickerVC 1.轻松实现调用照相机和本地图库,利用代理方法返回选中的照片。2.提供类方法,实现照片保存到沙盒,以及从沙盒中读取保存的图片。 详细文档请查看 http://www.jianshu.com/p/7ffc8844e956 SZKImagePickerVC.h ``` typedef NS_ENUM(NSUInteger,imagePickerStyle){ ImagePickerStyleCamera, ImagePickerStylePhotoLibrary }; @protocol SZKImagePickerVCDelegate -(void)imageChooseFinish:(UIImage *)image; @end /** * 保存成功回调 * * @param success 保存成功的block */ typedef void(^resultBlock)(BOOL success); @interface SZKImagePickerVC : UIImagePickerController /** * SZKImagePickerVCDelegate */ @property(nonatomic,assign)idSZKDelegate; /** * 初始化SZKImagePicker * * @param style 打开照相机或者图库 * * @return 初始化SZKImagePicker */ -(instancetype)initWithImagePickerStyle:(imagePickerStyle)style; /** * 保存图片到沙盒 * * @param image 要保存的图片 * @param imageName 保存的图片名称 * @param block 保存成功的值 */ +(void)saveImageToSandbox:(UIImage *)image andImageNage:(NSString *)imageName andResultBlock:(resultBlock)block; /** * 沙盒中获取到的照片 * * @param imageName 读取的照片名称 * * @return 从沙盒读取到的照片 */ +(UIImage *)loadImageFromSandbox:(NSString *)imageName; /** * 根据文件获取沙盒路径 * * @param fileName 文件名称 * * @return 文件在沙盒中的路径 */ +(NSString *)filePath:(NSString *)fileName; ``` SZKImagePickerVC.m中 ``` #pragma mark---选取照片 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { //界面返回 [picker dismissViewControllerAnimated:YES completion:nil]; //获取编辑之后的图片 UIImage *editedImage=[info objectForKey:UIImagePickerControllerEditedImage]; //将获取的image传入代理方法中 [self.SZKDelegate imageChooseFinish:editedImage]; } #pragma mark----将照片保存到沙盒 +(void)saveImageToSandbox:(UIImage *)image andImageNage:(NSString *)imageName andResultBlock:(resultBlock)block { //高保真压缩图片,此方法可将图片压缩,但是图片质量基本不变,第二个参数为质量参数 NSData *imageData=UIImageJPEGRepresentation(image, 0.5); //将图片写入文件 NSString *filePath=[self filePath:imageName]; //是否保存成功 BOOL result=[imageData writeToFile:filePath atomically:YES]; //保存成功传值到blcok中 if (result) { block(result); } } #pragma mark----从沙盒中读取照片 +(UIImage *)loadImageFromSandbox:(NSString *)imageName { //获取沙盒路径 NSString *filePath=[self filePath:imageName]; //根据路径读取image UIImage *image=[UIImage imageWithContentsOfFile:filePath]; return image; } #pragma mark----获取沙盒路径 +(NSString *)filePath:(NSString *)fileName { //获取沙盒目录 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //保存文件名称 NSString *filePath=[paths[0] stringByAppendingPathComponent:fileName]; return filePath; } ``` 详细文档请查看 http://www.jianshu.com/p/7ffc8844e956