iOS 调用相机 并选取图片 转载http://blog.csdn.net/justinjing0612/article/details/8030544
来源:互联网 发布:巨人网络回归a股时间 编辑:程序博客网 时间:2024/05/20 22:38
使用UIImagePickerController打开图片库和相机选择图片修改头像的主要方法如下,
声明:这个是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];
- }
0 0
- iOS 调用相机 并选取图片 转载http://blog.csdn.net/justinjing0612/article/details/8030544
- 转载自http://blog.csdn.net/fei20072050104/article/details/21785565
- 转载自:http://blog.csdn.net/lmj623565791/article/details/24015867
- 转载自 http://blog.csdn.net/racehorse/article/details/6593719
- 转载于:http://blog.csdn.net/wangnan537/article/details/37743497
- Clip 转载http://blog.csdn.net/lonelyroamer/article/details/8244777/
- Shape 转载http://blog.csdn.net/bear_huangzhen/article/details/24488337
- 转载出去:http://blog.csdn.net/han_xiaoyang/article/details/11969497
- 转载自http://blog.csdn.net/zhengzhihust/article/details/44151785
- 转载自http://blog.csdn.net/huxu981598436/article/details/51626569
- 转载自http://blog.csdn.net/lwyygydx/article/details/41870377
- 转载自:http://blog.csdn.net/go_hyp/article/details/53693058
- 转载http://blog.csdn.net/augusdi/article/details/11773163
- 转载自 http://blog.csdn.net/bieleyang/article/details/76973220
- 转载至:http://blog.csdn.net/antony9118/article/details/51425581
- 转载自http://blog.csdn.net/wwww1988600/article/details/7309070
- 转载http://blog.csdn.net/liaoxinmeng/article/details/
- Android Volley完全解析(二),使用Volley加载网络图片 转载:http://blog.csdn.net/guolin_blog/article/details/174
- Windows下开发Hadoop2.2.0程序
- Spark1.0.0 on YARN 模式部署
- Hadoop2.2.0生产环境模拟
- Spark1.0.0 on Standalone 模式部署
- HDFS HA系列实验之一:基础环境搭建
- iOS 调用相机 并选取图片 转载http://blog.csdn.net/justinjing0612/article/details/8030544
- HDFS HA系列实验之二:HA+JournalNode+zookeeper
- AMD OpenCL例子阅读笔记系列之Radix_Sort(一)
- HDFS HA系列实验之三:HA+NFS+zookeeper
- HDFS HA系列实验之四:HA+Federation
- HDFS HA系列实验之经验总结
- HDFS HA系列实验之五:client 配置
- HDFS HA系列实验之六:Federation之增减NN和Balancer
- mahout0.9 测试