iOS UI篇15- 个人中心设置头像
2016-08-06 11:24
411 查看
iOS调用相机和相册并编辑保存到本地(个人中心设置头像)
第一步:导入协议
<UINavigationControllerDelegate,UIImagePickerControllerDelegate>
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UINavigationControllerDelegate,UIImagePickerControllerDelegate> @property (weak, nonatomic) IBOutlet UIScrollView *imageScroll; @property (weak, nonatomic) IBOutlet UIImageView *photoImage; @end
第二步:打开相机
#pragma mark - 从相机获取图片 - (IBAction)photoFromCamera:(id)sender { if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;//设置类型为相机 UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化 picker.delegate = self;//设置代理 picker.allowsEditing = YES;//设置照片可编辑 picker.sourceType = sourceType; //设置是否显示相机控制按钮 默认为YES picker.showsCameraControls = YES; // //创建叠加层(例如添加的相框) // UIView *overLayView=[[UIView alloc]initWithFrame:CGRectMake(0, 120, 320, 254)]; // //取景器的背景图片,该图片中间挖掉了一块变成透明,用来显示摄像头获取的图片; // UIImage *overLayImag=[UIImage imageNamed:@"zhaoxiangdingwei.png"]; // UIImageView *bgImageView=[[UIImageView alloc]initWithImage:overLayImag]; // [overLayView addSubview:bgImageView]; // picker.cameraOverlayView=overLayView; //选择前置摄像头或后置摄像头 picker.cameraDevice=UIImagePickerControllerCameraDeviceFront; [self presentViewController:picker animated:YES completion:^{ }]; } else { NSLog(@"该设备无相机"); } }
第三步:调用相册
#pragma mark - 从相册获取图片 - (IBAction)photoFromAlbum:(id)sender { //首先需要判断资源是否可用 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init]; pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //获得相机模式下支持的媒体类型 // pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType]; pickerImage.delegate = self; //设置允许编辑 pickerImage.allowsEditing = YES; [self presentViewController:pickerImage animated:YES completion:^{ }]; } }
第四步:从相册选择图片后操作
#pragma mark - 从相册选择图片后操作 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { //NSLog(@"%@",info); //获取源图像(未经裁剪) // UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; //获取裁剪后的图像 UIImage *image = info[UIImagePickerControllerEditedImage]; //将照片存到媒体库 UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); self.photoImage.image = image; //将照片存到沙盒 [self saveImage:image]; [picker dismissViewControllerAnimated:YES completion:^{ }]; }
第五步:照片存到本地后的回调
#pragma mark - 照片存到本地后的回调 - (void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo{ if (!error) { NSLog(@"存储成功"); } else { NSLog(@"存储失败:%@", error); } }
第六步:保存图片
#pragma mark - 保存图片 - (void) saveImage:(UIImage *)currentImage { //设置照片的品质 NSData *imageData = UIImageJPEGRepresentation(currentImage, 0.5); NSLog(@"%@",NSHomeDirectory()); // 获取沙盒目录 NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/currentImage.png"]; // 将图片写入文件 [imageData writeToFile:filePath atomically:NO]; //将选择的图片显示出来 // [self.photoImage setImage:[UIImage imageWithContentsOfFile:filePath]]; }
第七步:取消操作调用
#pragma mark - 取消操作时调用 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [picker dismissViewControllerAnimated:YES completion:^{ }]; }
相关文章推荐
- iOS调用相机和相册 并编辑保存到本地(个人中心设置头像)
- IOS开发从手机相册中上传头像到APP的个人中心同时保存到数据库
- 个人中心,设置头像
- IOS开发类似于微博个人中心的头像可以拖动lei
- HTML个人设置中心以头像为背景类似蒙层效果
- iOS 设置个人头像
- Android之---个人中心里边的头像的设置、本地保存和传服务器
- iOS 仿百度外卖-个人中心(头像波浪效果)
- iOS 设置头像为圆形
- IOS客户端的个人中心可以查看自己的博客了。
- IOS 从系统图库中获取 图片 并设置为头像
- iOS 百度地图 设置显示区域 中心点和范围
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
- iOS开发UI篇—ios应用数据存储方式(偏好设置)
- ios 给view设置圆角头像(类似qq空间头像)
- iOS 设置圆形头像遇到的问题总结
- iOS开发UI篇—通知中心(NSNotificationCenter)
- iOS开发UI篇—iOS开发中三种简单的动画设置
- iOS开发UI篇—ios应用数据存储方式(偏好设置)