app实现上传图片

<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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值