- //从相册中选取图片或拍照
- - (void)btnActionForEditPortrait:(id) sender {
- UIImagePickerController *picker = [[UIImagePickerController alloc] init];
- picker.delegate = self;
- picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
- picker.allowsEditing = YES;
- [self presentViewController:picker animated:YES completion:NULL];
- }
-
- - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
-
- _avatar = info[UIImagePickerControllerOriginalImage];
-
- [self saveImage:_avatar WithName:@"userAvatar"];
-
- //处理完毕,回到个人信息页面
- [picker dismissViewControllerAnimated:YES completion:NULL];
- [_tableView reloadData];
- }
- //保存图片
- - (void)saveImage:(UIImage *)tempImage WithName:(NSString *)imageName
- {
- NSData* imageData = UIImagePNGRepresentation(tempImage);
- NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
- NSString* totalPath = [documentPath stringByAppendingPathComponent:imageName];
-
- //保存到 document
- [imageData writeToFile:totalPath atomically:NO];
-
- //保存到 NSUserDefaults
- NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
- [userDefaults setObject:totalPath forKey:@"avatar"];
-
- //上传服务器
- [[HSLoginClass new] uploadAvatar:totalPath];
- }
-
- //从document取得图片
- - (UIImage *)getImage:(NSString *)urlStr
- {
- return [UIImage imageWithContentsOfFile:urlStr];
- }
在使用app时,从相册中选取图片作为头像是很常用的操作,首先打开相册选择图片,然后将图片保存至本应用的document,最后将document中图片的路径保存至NSUserDefaults和服务器。