ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像(iphone版本)
2012-09-29 09:12
666 查看
使用UIImagePickerController打开图片库和相机选择图片修改头像的主要方法如下,
声明:这个是iphone版本的,ipad版本的使用这个不行,因为iPad要用UIPopover才可以。
效果图:
声明:这个是iphone版本的,ipad版本的使用这个不行,因为iPad要用UIPopover才可以。
效果图:
- (void)viewDidLoad { [super viewDidLoad]; //获取Documents文件夹目录 NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentPath = [path objectAtIndex:0]; //指定新建文件夹路径 NSString *imageDocPath = [documentPath stringByAppendingPathComponent:@"ImageFile"]; //创建ImageFile文件夹 [[NSFileManager defaultManager] createDirectoryAtPath:imageDocPath withIntermediateDirectories:YES attributes:nil error:nil]; //保存图片的路径 self.imagePath = [imageDocPath stringByAppendingPathComponent:@"image.png"]; } -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:YES]; //根据图片路径载入图片 UIImage *image=[UIImage imageWithContentsOfFile:self.imagePath]; if (image == nil) { //显示默认 [changeImg setBackgroundImage:[UIImage imageNamed:@"user_photo@2x.png"] forState:UIControlStateNormal]; }else { //显示保存过的 [changeImg setBackgroundImage:image forState:UIControlStateNormal]; } } - (void)dealloc { [imagePath release]; [changeImg release]; [super dealloc]; } - (IBAction)changeImage:(id)sender { UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles: @"从相册选择", @"拍照",nil]; [myActionSheet showInView:self.view]; [myActionSheet release]; } -(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ switch (buttonIndex) { case 0: //从相册选择 [self LocalPhoto]; break; case 1: //拍照 [self takePhoto]; break; default: break; } } //从相册选择 -(void)LocalPhoto{ UIImagePickerController *picker = [[UIImagePickerController alloc] init]; //资源类型为图片库 picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.delegate = self; //设置选择后的图片可被编辑 picker.allowsEditing = YES; [self presentModalViewController:picker animated:YES]; [picker release]; } //拍照 -(void)takePhoto{ //资源类型为照相机 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; //判断是否有相机 if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){ UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; //设置拍照后的图片可被编辑 picker.allowsEditing = YES; //资源类型为照相机 picker.sourceType = sourceType; [self presentModalViewController:picker animated:YES]; [picker release]; }else { NSLog(@"该设备无摄像头"); } } #pragma Delegate method UIImagePickerControllerDelegate //图像选取器的委托方法,选完图片后回调该方法 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{ //当图片不为空时显示图片并保存图片 if (image != nil) { //图片显示在界面上 [changeImg setBackgroundImage:image forState:UIControlStateNormal]; //以下是保存文件到沙盒路径下 //把图片转成NSData类型的数据来保存文件 NSData *data; //判断图片是不是png格式的文件 if (UIImagePNGRepresentation(image)) { //返回为png图像。 data = UIImagePNGRepresentation(image); }else { //返回为JPEG图像。 data = UIImageJPEGRepresentation(image, 1.0); } //保存 [[NSFileManager defaultManager] createFileAtPath:self.imagePath contents:data attributes:nil]; } //关闭相册界面 [picker dismissModalViewControllerAnimated:YES]; }
相关文章推荐
- ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像(iphone版本)
- ios 使用UIImagePickerController 打开图片库和相机选择图片修改头像
- UIImagePickerController之打开图片库和相机选择图片修改头像
- 【Xamarin】MonoTouch - iOS 使用 UIImagePickerController 打开图片库和相机选择图片修改头像
- UIImagePickerController 打开图片库和相机选择图片
- 基于Swift的iOS应用程序开发:使用UIImagePickerController从相册选择图片
- Monotouch在IPAD与IPhone使用UIImagePickerController的图片选择不同的代码
- ios 打开图片库和相机选择图片界面修改为简体中文
- Qt for iOS:使用UIImagePickerController获取一个系统相册中的图片
- ios 打开图片库和相机选择图片界面英文修改为简体中文
- iOS 学习笔记-个人头像获取UIImagePickerController使用
- iphone 怎么使用图片选取器 UIImagePickerController
- iphone 怎么使用图片选取器 UIImagePickerController
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
- ios 打开图片库和相机选择图片界面修改为简体中文
- iOS开发之UIImagePickerController图片选择管理器
- iOS开发中使用相机或系统相册的一些问题总结(UIImagePickerController)
- iPhone通过UIImagePickerController选择图片
- UIImagePickerController本地图片视频,相机录像机使用
- UIImagePickerController(获取相册图片,打开相机)