关于选择照片和拍照
2015-10-15 16:09
399 查看
//选择照片- (IBAction)selectedPhoto:(id)sender { UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; /* UIImagePickerControllerSourceTypePhotoLibrary, 显示所有文件夹 UIImagePickerControllerSourceTypeCamera, 调用系统摄像头 UIImagePickerControllerSourceTypeSavedPhotosAlbum 显示内置文件夹 */ pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; pickVC.delegate = self; [self presentViewController:pickVC animated:YES completion:nil]; }
//拍照- (IBAction)cameraPhoto:(id)sender { //判断当前设备是否有摄像头 BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]; if (!isCamer) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"没有可用摄像头" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alertView show]; return; } UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; //指定资源的来源:来自摄像头 pickVC.sourceType = UIImagePickerControllerSourceTypeCamera; pickVC.delegate = self; [self presentViewController:pickVC animated:YES completion:NULL]; }
//选择视频资源- (IBAction)selectVedio:(id)sender { UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; /* UIImagePickerControllerSourceTypePhotoLibrary, 显示所有文件夹 UIImagePickerControllerSourceTypeCamera, 调用系统摄像头 UIImagePickerControllerSourceTypeSavedPhotosAlbum 显示内置文件夹 */ pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; pickVC.delegate = self; //指定选择媒体资源类型 public.movie 视频类型 public.image 照片类型 pickVC.mediaTypes = @[@"public.movie"]; [self presentViewController:pickVC animated:YES completion:nil];
}
//拍视频- (IBAction)camerVadio:(id)sender { //判断当前设备是否有摄像头 BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]; if (!isCamer) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"没有可用摄像头" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alertView show]; return; }
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; /* UIImagePickerControllerSourceTypePhotoLibrary, 显示所有文件夹 UIImagePickerControllerSourceTypeCamera, 调用系统摄像头 UIImagePickerControllerSourceTypeSavedPhotosAlbum 显示内置文件夹 */ pickVC.sourceType = UIImagePickerControllerSourceTypeCamera; pickVC.delegate = self; //指定选择媒体资源类型 public.movie 视频类型 public.image 照片类型 pickVC.mediaTypes = @[@"public.movie"]; [self presentViewController:pickVC animated:YES completion:nil];
}
#pragma mark -UIImagePickerControllerDelegate//选择一个照片、或者视频调用的协议方法- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; if ([mediaType isEqualToString:@"public.image"]) { //图片 //获取图片 UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage]; self.imgView.image = img; //判断照片的来源是否来自摄像头 if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { //将图片保存至相册 UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); } }else if([mediaType isEqualToString:@"public.movie"]) { // UIImagePickerControllerReferenceURL //1.获取到此资源的url地址 NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL]; //2.创建视频播放器 MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; //3.弹出视频播放控制器,自动播放 [self presentMoviePlayerViewControllerAnimated:moviePlayer]; }
//关闭模态视图 [picker dismissViewControllerAnimated:YES completion:nil];}
//通过UIImageWriteToSavedPhotosAlbum 保存图片成功以后,调用的方法- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ NSLog(@"保存成功");}
//拍照- (IBAction)cameraPhoto:(id)sender { //判断当前设备是否有摄像头 BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]; if (!isCamer) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"没有可用摄像头" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alertView show]; return; } UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; //指定资源的来源:来自摄像头 pickVC.sourceType = UIImagePickerControllerSourceTypeCamera; pickVC.delegate = self; [self presentViewController:pickVC animated:YES completion:NULL]; }
//选择视频资源- (IBAction)selectVedio:(id)sender { UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; /* UIImagePickerControllerSourceTypePhotoLibrary, 显示所有文件夹 UIImagePickerControllerSourceTypeCamera, 调用系统摄像头 UIImagePickerControllerSourceTypeSavedPhotosAlbum 显示内置文件夹 */ pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; pickVC.delegate = self; //指定选择媒体资源类型 public.movie 视频类型 public.image 照片类型 pickVC.mediaTypes = @[@"public.movie"]; [self presentViewController:pickVC animated:YES completion:nil];
}
//拍视频- (IBAction)camerVadio:(id)sender { //判断当前设备是否有摄像头 BOOL isCamer = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]; if (!isCamer) { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"没有可用摄像头" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; [alertView show]; return; }
UIImagePickerController *pickVC = [[UIImagePickerController alloc] init]; /* UIImagePickerControllerSourceTypePhotoLibrary, 显示所有文件夹 UIImagePickerControllerSourceTypeCamera, 调用系统摄像头 UIImagePickerControllerSourceTypeSavedPhotosAlbum 显示内置文件夹 */ pickVC.sourceType = UIImagePickerControllerSourceTypeCamera; pickVC.delegate = self; //指定选择媒体资源类型 public.movie 视频类型 public.image 照片类型 pickVC.mediaTypes = @[@"public.movie"]; [self presentViewController:pickVC animated:YES completion:nil];
}
#pragma mark -UIImagePickerControllerDelegate//选择一个照片、或者视频调用的协议方法- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; if ([mediaType isEqualToString:@"public.image"]) { //图片 //获取图片 UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage]; self.imgView.image = img; //判断照片的来源是否来自摄像头 if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { //将图片保存至相册 UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); } }else if([mediaType isEqualToString:@"public.movie"]) { // UIImagePickerControllerReferenceURL //1.获取到此资源的url地址 NSURL *url = [info objectForKey:UIImagePickerControllerMediaURL]; //2.创建视频播放器 MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; //3.弹出视频播放控制器,自动播放 [self presentMoviePlayerViewControllerAnimated:moviePlayer]; }
//关闭模态视图 [picker dismissViewControllerAnimated:YES completion:nil];}
//通过UIImageWriteToSavedPhotosAlbum 保存图片成功以后,调用的方法- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ NSLog(@"保存成功");}
相关文章推荐
- 师父照片集
- C#实现将网页保存成图片的网页拍照功能
- android 拍照和上传的实现代码
- android获取照片的快照 思路及实现方法
- Android调用手机拍照功能的方法
- php视频拍照上传头像功能实现代码分享
- 开源中国 OsChina Android 客户端源码分析(6)拍照、图库、裁剪
- Windows 7系統庫功能小技巧
- 回忆逝去时光中的自己
- 廖慧敏落水门视频 廖慧敏照片 廖慧敏资料
- 成都春熙路刀客事件PS照片集
- Facebook再曝漏洞希尔顿私密照片外泄
- [我行我摄]阿东的作品集之棚拍作品
- [我行我摄]深圳大学的高素质MM
- [我行我摄]又是一年荷花开
- [我行我摄]又是一年荷花开之二
- 如何用Photoshop美化照片
- 让你的照片不再平凡:70多种照片边框的制作方法
- PS青山绿水婚片处理
- Photoshop修复模糊照片的多种方法