app实现上传图片

来源:互联网 发布:印度同志聊天软件 编辑:程序博客网 时间:2024/05/01 12:17

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">通过点击ImageView,调用系统相册或者相机选择照片。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">调用UIImagePickerController,需要有</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">UIImagePickerControllerDelegate</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">,</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">UINavigationControllerDelegate两个协议,sourceType中</span><span class="s1" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">UIImagePickerControllerSourceTypePhotoLibrary是相册,</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">UIImagePickerControllerSourceTypeCamera是相机(真机才可以测试)。</span>

1.打开相册

        UIImagePickerController *controller = [[UIImagePickerController alloc] init];        NSMutableArray *mediaTypes = [[NSMutableArray alloc] init];        controller.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;        [mediaTypes addObject:(__bridge NSString *)kUTTypeImage];        controller.mediaTypes = mediaTypes;        controller.delegate = self;        [self presentViewController:controller                           animated:YES                         completion:^(void){//                             DDLogInfo(@"Picker View Controller is presented");                         }];
2.选择图片,可以在这使用第三方的RSKImageCropper,用来自定义选取圆形或方形的图片

#pragma mark - UIImagePickerControllerDelegate- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{    __weak VerificationViewController *weakSelf = self;    [picker dismissViewControllerAnimated:YES                               completion:^() {                                   UIImage *portraitImg = [info objectForKey:@"UIImagePickerControllerOriginalImage"];                                   //取得选择的图片                                   weakSelf.userPortrait = portraitImg;                                   //上传图片                                   [weakSelf updateUserPortait];                               }];}/**这个方法记得写,用来点击取消时返回*/- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{    [picker dismissViewControllerAnimated:YES                               completion:^{                               }];}
3.图片上传,大部分会采用base64加密,参数封装

NSData *data                = UIImageJPEGRepresentation(self.userPortrait, 0.5);    NSString *bodystring        = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];    NSData  *imagedata          = [bodystring dataUsingEncoding:NSUTF8StringEncoding];    NSString  *imageData        = [[NSString alloc] initWithData:imagedata                                                        encoding:NSUTF8StringEncoding];




0 0
原创粉丝点击