文档章节

ios 使用UIImagePickerController 修改头像

哈喽_阳光
 哈喽_阳光
发布于 2015/06/19 09:41
字数 494
阅读 23
收藏 0

- (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];  


// 改变图像的尺寸,方便上传服务器
- (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size
{
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}


本文转载自:http://blog.csdn.net/jinglijun/article/details/8030544

共有 人打赏支持
哈喽_阳光
粉丝 1
博文 9
码字总数 2832
作品 0
广州
iOS 使用UIImagePickerController 拍照

在项目开发的过程中,我们经常会使用的iPhone 或者 iPad 的拍照功能,比如给用户设置头像,一般都会用到拍照功能。我们可以使用UIImagePickerController 类来调用iPhone的摄像头进行拍照或者...

广州英趣科技
2013/06/23
0
2
xcode5 ios7 status bar 各种隐藏问题

各种关于ios7 下隐藏status bar的问题。汇集一下: 用xcode5开发新的iOS游戏,虽然我已经在info.plist里面把Status bar is initially hidden设置成了YES,但在设备上一跑还是看到status bar,...

常思过
2014/03/20
0
0
iOS 设置UIImagePickerController显示中文页面

iOS开发中,在使用UIImagePickerController调用相机时,页面是显示的英文,修改成中文页面方法: 1. Project-->Info-->Localizations 添加 Chinese 2. Target-->Info-->Localization native......

琳小兮
07/13
0
0
程序员随笔:使用来自服务器的图像(有源码)

如果您是移动应用程序开发人员,则在某个时间点您需要与后端进行互动。您可能需要做的其中一项任务是从服务器检索并显示图像,或将图像提交给该服务器。提交图像时应该使用什么格式?如何将从...

菇哒微课
04/25
0
0
iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码

iOS精选源码 LeeTagView 标签选择控件(http://www.code4app.com/thread-31033-1-1.html) 为您的用户显示界面添加美观的加载视图(http://www.code4app.com/thread-31038-1-1.html) Swift4: 可......

sunnyaigd
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

百度贴吧发送gif图片的限制

百度贴吧中不可以发送超过500k的gif图片,同时尺寸不能超过700个像素。

gugudu
20分钟前
1
0
eclipse中查找所有汉字

今天遇到需要对中文翻译为英文的情况,需要查找一下项目中出现的所有汉字。我们可以使用快捷键Ctrl+H,在搜索一栏输入:[^\x00-\xff],记得勾选正则表达式。 备注: [\x00-\xff] 是 0 - 255的...

hengbao5
22分钟前
2
0
HBase常用操作命令

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,...

飓风2000
26分钟前
2
0
天创恒达TC TC6C0更新固件包

天创恒达TC TC6C0 升级完 登录密码 admin、000000

yizhichao
28分钟前
2
0
阿里云总裁胡晓明:“这些新杭州故事,明天将会在更多城市发生”

摘要: 9月19日,2018杭州·云栖大会现场,杭州城市大脑2.0正式发布,管辖范围扩大28倍,覆盖面积增至420平方公里,相当于65个西湖大小。 ET城市大脑等数字化城市解决方案,掀开了“杭州故事...

阿里云官方博客
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部