// 上传本地图片(存储到沙河,上传到服务器)
#import "ViewController.h"
@interface ViewController ()<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@property (nonatomic, strong)UIImage *avatar; // 获取本地图片
@property (nonatomic, strong)UIImageView *avatar1; //
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [[UIButton alloc]init];
button.frame = CGRectMake(100, 250, 100, 100);
[button setTitle:@"上传图片" forState:UIControlStateNormal];
button.backgroundColor = [UIColor redColor];
[button addTarget:self action:@selector(btnActionForEditPortrait:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
_avatar1 = [[UIImageView alloc]init];
_avatar1.frame = CGRectMake(100, 80, 80, 80);
_avatar1.backgroundColor = [UIColor blackColor];
_avatar1.layer.masksToBounds = YES;
_avatar1.layer.cornerRadius = CGRectGetHeight(_avatar1.bounds) / 2;
_avatar1.layer.borderWidth = 2.0f;
_avatar1.layer.borderColor = [[UIColor lightGrayColor]CGColor];
// 获取存放在NSUserDefaults里面的图片
// NSData *data = [[NSUserDefaults standardUserDefaults]objectForKey:@"avatar"];
// if (data == nil) {
// NSLog(@"11111---%@", data);
// _avatar1.image = [UIImage imageNamed:@"Wechat"];
// } else
// {
// _avatar1.image = [UIImage imageWithData:data];
// }
[self.view addSubview:_avatar1];
}
#pragma mark 图片将要加载的时候处理占位图
- (void)viewWillAppear:(BOOL)animated
{
// _avatar1 = [[UIImageView alloc]init];
// _avatar1.frame = CGRectMake(100, 80, 80, 80);
// _avatar1.backgroundColor = [UIColor blackColor];
// _avatar1.layer.masksToBounds = YES;
// _avatar1.layer.cornerRadius = CGRectGetHeight(_avatar1.bounds) / 2;
// _avatar1.layer.borderWidth = 2.0f;
// _avatar1.layer.borderColor = [[UIColor lightGrayColor]CGColor];
// 获取存放在NSUserDefaults里面的图片
NSData *data = [[NSUserDefaults standardUserDefaults]objectForKey:@"avatar"];
if (data == nil) {
NSLog(@"viewWillAppear 11111---%@", data);
_avatar1.image = [UIImage imageNamed:@"Wechat"];
} else
{
_avatar1.image = [UIImage imageWithData:data];
}
[self.view addSubview:_avatar1];
}
#pragma mark 打开本地照片
- (void)btnActionForEditPortrait:(id)sender {
// 打开本地照片
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = YES;
[self presentViewController:picker animated:YES completion:nil];
}
// 选择图片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
// _avatar = info[UIImagePickerControllerOriginalImage];
_avatar = info[UIImagePickerControllerEditedImage];
[self saveImage:_avatar withNamge:@"userAvatar"];
// 处理完毕 回到个人信息页面
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)saveImage:(UIImage *)tempImage withNamge:(NSString *)imageName
{
NSData *imageData = UIImagePNGRepresentation(tempImage);
// 获取路径
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 拼接路径
NSString *totalPath = [documentPath stringByAppendingString:imageName];
// 保存到document
[imageData writeToFile:totalPath atomically:YES];
NSLog(@"document --- %@", totalPath);
[_avatar1 setImage:[self getImage:totalPath]];
// 保存到NSUserDefaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:imageData forKey:@"avatar"];
#pragma mark 上传服务器
}
// 从document取得图片
- (UIImage *)getImage:(NSString *)urlStr
{
return [UIImage imageWithContentsOfFile:urlStr];
}
iOS 本地头像加载与上传头像图片
最新推荐文章于 2021-03-10 04:21:51 发布
233

被折叠的 条评论
为什么被折叠?



