亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS實現頭像選?。ㄕ障嗷蛘邎D片庫)、大小等比縮放、生成圓形頭像

2019-11-14 20:24:51
字體:
來源:轉載
供稿:網友
//彈出actionsheet。選擇獲取頭像的方式



//
從相冊獲取圖片-(void)takePictureClick:(UIButton *)sender{// /*注:使用,需要實現以下協議:UIImagePickerControllerDelegate,// UINavigationControllerDelegate// */// UIImagePickerController *picker = [[UIImagePickerController alloc]init];// //設置圖片源(相簿)// picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;// //設置代理// picker.delegate = self;// //設置可以編輯// picker.allowsEditing = YES;// //打開拾取器界面// [self PResentViewController:picker animated:YES completion:nil]; UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"請選擇文件來源" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"照相機",@"攝像機",@"本地相簿",@"本地視頻",nil]; [actionSheet showInView:self.view]; }#pragma mark -#pragma UIActionSheet Delegate- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"buttonIndex = [%d]",buttonIndex); switch (buttonIndex) { case 0://照相機 { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;// [self presentModalViewController:imagePicker animated:YES]; [self presentViewController:imagePicker animated:YES completion:nil]; } break; case 1://攝像機 { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.videoQuality = UIImagePickerControllerQualityTypeLow;// [self presentModalViewController:imagePicker animated:YES]; [self presentViewController:imagePicker animated:YES completion:nil]; } break; case 2://本地相簿 { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;// [self presentModalViewController:imagePicker animated:YES]; [self presentViewController:imagePicker animated:YES completion:nil]; } break; case 3://本地視頻 { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.allowsEditing = YES; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;// [self presentModalViewController:imagePicker animated:YES]; [self presentViewController:imagePicker animated:YES completion:nil]; } break; default: break; }}#pragma mark -#pragma UIImagePickerController Delegate- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(__bridge NSString *)kUTTypeImage]) { UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; [self performSelector:@selector(saveImage:) withObject:img afterDelay:0.5]; } else if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:(__bridge NSString *)kUTTypeMovie]) { NSString *videoPath = [[info objectForKey:UIImagePickerControllerMediaURL] path]; self.fileData = [NSData dataWithContentsOfFile:videoPath]; }// [picker dismissModalViewControllerAnimated:YES]; [picker dismissViewControllerAnimated:YES completion:nil];}- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{// [picker dismissModalViewControllerAnimated:YES]; [picker dismissViewControllerAnimated:YES completion:nil];}- (void)saveImage:(UIImage *)image { // NSLog(@"保存頭像!"); // [userPhotoButton setImage:image forState:UIControlStateNormal]; BOOL success; NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *imageFilePath = [documentsDirectory stringByAppendingPathComponent:@"selfPhoto.jpg"]; NSLog(@"imageFile->>%@",imageFilePath); success = [fileManager fileExistsAtPath:imageFilePath]; if(success) { success = [fileManager removeItemAtPath:imageFilePath error:&error]; }// UIImage *smallImage=[self scaleFromImage:image toSize:CGSizeMake(80.0f, 80.0f)];//將圖片尺寸改為80*80 UIImage *smallImage = [self thumbnailWithImageWithoutScale:image size:CGSizeMake(93, 93)]; [UIImageJPEGRepresentation(smallImage, 1.0f) writeToFile:imageFilePath atomically:YES];//寫入文件 UIImage *selfPhoto = [UIImage imageWithContentsOfFile:imageFilePath];//讀取圖片文件// [userPhotoButton setImage:selfPhoto forState:UIControlStateNormal]; self.img.image = selfPhoto;}// 改變圖像的尺寸,方便上傳服務器- (UIImage *) scaleFromImage: (UIImage *) image toSize: (CGSize) size{ UIGraphicsBeginImageContext(size); [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage;}

 

2.保持原始圖片的長寬比,生成需要尺寸的圖片

//2.保持原來的長寬比,生成一個縮略圖- (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize{    UIImage *newimage;    if (nil == image) {        newimage = nil;    }    else{        CGSize oldsize = image.size;        CGRect rect;        if (asize.width/asize.height > oldsize.width/oldsize.height) {            rect.size.width = asize.height*oldsize.width/oldsize.height;            rect.size.height = asize.height;            rect.origin.x = (asize.width - rect.size.width)/2;            rect.origin.y = 0;        }        else{            rect.size.width = asize.width;            rect.size.height = asize.width*oldsize.height/oldsize.width;            rect.origin.x = 0;            rect.origin.y = (asize.height - rect.size.height)/2;        }        UIGraphicsBeginImageContext(asize);        CGContextRef context = UIGraphicsGetCurrentContext();        CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);        UIRectFill(CGRectMake(0, 0, asize.width, asize.height));//clear background        [image drawInRect:rect];        newimage = UIGraphicsGetImageFromCurrentImageContext();        UIGraphicsEndImageContext();    }    return newimage;}

 

 

3.顯示圓形頭像

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    NSString *documentsDirectory = [paths objectAtIndex:0];    NSString *imageFilePath = [documentsDirectory stringByAppendingPathComponent:@"selfPhoto.jpg"];    NSLog(@"imageFile->>%@",imageFilePath);    UIImage *selfPhoto = [UIImage imageWithContentsOfFile:imageFilePath];//    self.img.image = selfPhoto;    [self.img.layer setCornerRadius:CGRectGetHeight([self.img bounds]) / 2];  //修改半徑,實現頭像的圓形化    self.img.layer.masksToBounds = YES;

 

希望能對大家有幫助,如果你有更好的實現方式。歡迎告訴我。

 demo下載地址:http://download.csdn.net/detail/wangtao169447/7515487

https://github.com/wangtao169447/TakeAvatarPhoto


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第一综合天堂另类专| 欧美成人免费大片| 久久久精品一区二区三区| 日韩电影中文字幕在线观看| 欧美激情视频一区| 欧美性生交大片免费| 久久国产精品影片| 一区二区三区无码高清视频| 国产一区二区视频在线观看| 亚洲精品一区二区久| 国产精品视频地址| 国产欧美一区二区三区在线| 欧美日韩第一视频| 国产91在线播放九色快色| 亚洲精品黄网在线观看| y97精品国产97久久久久久| 国产精品日韩一区| 国产精品免费一区豆花| 国产噜噜噜噜噜久久久久久久久| 国模gogo一区二区大胆私拍| 日韩国产高清污视频在线观看| 中文字幕国产日韩| 青青草原一区二区| 欧美一级淫片播放口| 日韩暖暖在线视频| 亚洲一区中文字幕| 亚洲精品中文字幕av| 欧美大片欧美激情性色a∨久久| 国产精品欧美一区二区| 亚洲电影av在线| 亚洲视频一区二区三区| 欧美夫妻性生活xx| 91精品国产91久久久久久最新| xxx成人少妇69| 成人国产在线视频| 91久久精品在线| 青青草一区二区| 国产亚洲精品日韩| 日韩一区二区在线视频| 欧美一级淫片aaaaaaa视频| 精品露脸国产偷人在视频| 最新国产精品亚洲| 91精品久久久久久| 久热精品视频在线观看| 日韩免费观看视频| 91精品国产综合久久久久久久久| 日韩在线视频观看正片免费网站| 日韩有码片在线观看| 欧美在线视频免费观看| 国产美女精品视频免费观看| 精品久久久久久久中文字幕| 国产91久久婷婷一区二区| 亚洲xxxx视频| 91色p视频在线| 欧美精品在线视频观看| 亚洲a区在线视频| 国产精品美女主播在线观看纯欲| 欧美激情第6页| 国产精品流白浆视频| 国产亚洲精品一区二区| 91精品视频在线播放| 欧美性受xxx| 国产精品ⅴa在线观看h| 隔壁老王国产在线精品| 精品国产福利在线| 日韩免费av在线| 国产69精品久久久久9999| 在线不卡国产精品| 欧美肥臀大乳一区二区免费视频| 中文精品99久久国产香蕉| 国产一区二区三区在线免费观看| 国产自摸综合网| 欧美有码在线观看视频| 中文字幕亚洲一区在线观看| 91精品国产自产91精品| 国产精品天天狠天天看| 欧美电影在线播放| 欧美疯狂做受xxxx高潮| 一区二区中文字幕| 日韩欧美在线看| 日韩国产精品视频| 国产日韩在线视频| 久久精品国产精品| 精品国产乱码久久久久久天美| 欧美精品久久一区二区| 亚洲国产成人精品久久久国产成人一区| 日韩欧美在线第一页| 国产精品久久久久aaaa九色| 国产日韩欧美夫妻视频在线观看| 日韩风俗一区 二区| 亚洲精品美女网站| 色噜噜狠狠色综合网图区| 欧美日韩亚洲一区二区三区| 国产精品电影久久久久电影网| 久久成人这里只有精品| 久久免费精品视频| 国产精品国产自产拍高清av水多| 欧美小视频在线观看| 国产精品成人v| 国产日韩精品电影| 久久99精品久久久久久青青91| 国产精自产拍久久久久久| 一区二区欧美亚洲| 日韩av手机在线看| 国产欧美韩国高清| 久久综合久久美利坚合众国| 懂色av中文一区二区三区天美| 日本中文字幕成人| 91免费高清视频| 91高清在线免费观看| 九九热这里只有精品6| 中文字幕精品国产| 精品亚洲一区二区三区四区五区| 4444欧美成人kkkk| 国产91色在线免费| 欧美日韩国产在线看| 国产精品∨欧美精品v日韩精品| 欧美大奶子在线| 欧美大片在线看| 久久人人97超碰精品888| 亚洲视频777| 日韩美女毛茸茸| 日韩va亚洲va欧洲va国产| 欧美性xxxxx极品| 欧美日韩国产中文字幕| 亚洲欧洲日产国产网站| 91精品久久久久久久久久| 精品偷拍各种wc美女嘘嘘| 欧美视频在线免费看| 亚洲人成网站在线播| 国产一区二中文字幕在线看| 色妞久久福利网| 国产69精品久久久久9| 国产精品美女午夜av| 亚洲欧美在线免费观看| 日韩亚洲欧美中文高清在线| 亚洲精品中文字幕av| 亚洲最大在线视频| 日韩中文在线中文网三级| 欧美激情一区二区三区久久久| 成人av色在线观看| 国产精品久久久久久久久久久久久| 97久久伊人激情网| 91精品国产777在线观看| 最近2019免费中文字幕视频三| 欧美黑人国产人伦爽爽爽| 91在线观看免费网站| 欧美肥臀大乳一区二区免费视频| 欧洲亚洲在线视频| 欧美在线视频一区二区| 国产精品日韩欧美| 亚洲自拍偷拍色片视频| 国内精品中文字幕| 91福利视频网| 日本欧美精品在线| 日本老师69xxx| 久久夜色精品国产亚洲aⅴ| 992tv成人免费影院| 国产精品久久久久久搜索| 久久国产精品久久精品| 欧美日韩ab片| 国产精品一香蕉国产线看观看| 亚洲一区精品电影| 国产精品电影在线观看|