iOS--OC语言相机封装----包含保存与读取
来源:互联网 发布:mac毛笔书法字体下载 编辑:程序博客网 时间:2024/06/08 16:52
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSUInteger,imagePickerStyle){
ImagePickerStyleCamera,
ImagePickerStylePhotoLibrary
};
@protocol WPhotoImagePickerViewControllerDelegate <NSObject>
-(void)imageChooseFinish:(UIImage *)image;
@end
/**
* 保存成功回调
*
* @param success 保存成功的block
*/
typedef void(^resultBlock)(BOOL success);
@interface WPhotoImagePickerViewController :UIImagePickerController
/**
* SZKImagePickerVCDelegate
*/
@property(nonatomic,assign)id<WPhotoImagePickerViewControllerDelegate>WPhotoImageDelegate;
/**
* 初始化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;
@end
#import "WPhotoImagePickerViewController.h"
@interface WPhotoImagePickerViewController ()<UIImagePickerControllerDelegate>
@end
@implementation WPhotoImagePickerViewController
-(instancetype)initWithImagePickerStyle:(imagePickerStyle)style {
self=[superinit];
if (self) {
if (style==ImagePickerStyleCamera) {
self.sourceType=UIImagePickerControllerSourceTypeCamera;
}elseif(style==ImagePickerStylePhotoLibrary) {
self.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
}
}
returnself;
}
- (void)viewDidLoad {
[superviewDidLoad];
self.allowsEditing=YES;
self.delegate =self;
self.view.backgroundColor=[UIColorcolorWithWhite:0.875alpha:1.000];
}
#pragma mark---选取照片
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {
//界面返回
[picker dismissViewControllerAnimated:YEScompletion:nil];
//获取编辑之后的图片
UIImage *editedImage=[infoobjectForKey:UIImagePickerControllerEditedImage];
//将获取的image传入代理方法中
[self.WPhotoImageDelegateimageChooseFinish:editedImage];
}
#pragma mark----将照片保存到沙盒
+(void)saveImageToSandbox:(UIImage *)image andImageNage:(NSString *)imageName andResultBlock:(resultBlock)block {
//高保真压缩图片,此方法可将图片压缩,但是图片质量基本不变,第二个参数为质量参数
NSData *imageData=UIImageJPEGRepresentation(image,0.5);
//将图片写入文件
NSString *filePath=[selffilePath:imageName];
//是否保存成功
BOOL result=[imageDatawriteToFile:filePath atomically:YES];
//保存成功传值到blcok中
if (result) {
block(result);
}
}
#pragma mark----从沙盒中读取照片
+(UIImage *)loadImageFromSandbox:(NSString *)imageName {
//获取沙盒路径
NSString *filePath=[selffilePath:imageName];
//根据路径读取image
UIImage *image=[UIImageimageWithContentsOfFile:filePath];
return image;
}
#pragma mark----获取沙盒路径
+(NSString *)filePath:(NSString *)fileName {
//获取沙盒目录
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
//保存文件名称
NSString *filePath=[paths[0]stringByAppendingPathComponent:fileName];
NSLog(@"%@",filePath);
return filePath;
}
@end
- iOS--OC语言相机封装----包含保存与读取
- OC语言 集合>>封装与拆包
- IOS开发---OC语言-⑥封装(set、get)
- ios 相机 录视频和拍照的封装 保存到相册
- IOS调用相机,保存到沙盒
- OC ---封装与方法
- OC ---封装与方法
- JS与OC互调,JS打开系统相机,JS获取iOS系统图片,iOS中JS调OC
- JS与OC互调,JS打开系统相机,JS获取iOS系统图片,iOS中JS调OC
- OC语言---封装,继承,多态
- 黑马程序员-OC语言-封装
- OC语言5—封装
- iOS开发-Day14-OC封装
- 位图的读取与保存 C语言 源文件+头文件
- 【R语言学习笔记】一、 数据的读取与保存
- iOS 通讯录(OC 语言)
- iOS 设置相机按钮语言
- IOS中的结构体保存到数组与读取
- python常用正则表达式
- 前置规约调试(1)
- A. Sereja and Prefixes----模拟
- 测试方法
- app目录下的build.gradle详解
- iOS--OC语言相机封装----包含保存与读取
- [容易] UVa OJ 673 经典括号匹配问题
- 多态理解
- 【TensorFlow】Windows10 64位下安装TensorFlow
- Iterator
- 测试计划、测试设计、测试执行
- 主定理(Master Theorem)与时间复杂度
- Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
- Spring源码深度解析(二)容器的基本用法