返回顶部

收藏

iOS调用相机并且上传照片的方法

更多

1 调用相机并且上传照片的方法 ```cpp

import "ViewController.h"

import "AFNetworking.h"

@interface ViewController () <UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end

@implementation ViewController

  • (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }

  • (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event { UIActionSheet sheet = [[UIActionSheet alloc] initWithTitle:@"请选择照片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"相机",@"相册", nil]; /*

    • window代表着最高处,所有能看到的view,后面都是window。
    • 当push相机控制器的时候,self.view就自动移除了。而当dismiss控制器的时候,因为self.view移除了,所有sheet无法寄居在view的上面,而固定在self.view.window,就可以保证,sheet一定在view视图上 */ [sheet showInView:self.view.window];

}

-(void)actionSheet:(UIActionSheet )actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { UIImagePickerController ipc = [[UIImagePickerController alloc] init];

ipc.delegate = self;
ipc.allowsEditing = YES;  //相片是否可编辑 
switch (buttonIndex) {
    case 0:
        if (![UIImagePickerController isSourceTypeAvailable:
              UIImagePickerControllerSourceTypeCamera]) return;
            ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
        break;
    case 1:
        if (![UIImagePickerController isSourceTypeAvailable:
              UIImagePickerControllerSourceTypePhotoLibrary]) return;
            ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        break;

    default:
        return;
        break;
}
[self presentViewController:ipc animated:YES completion:nil];

}

/ * 选择完照片后调用的方法 * @param info 所有相片的信息都在这个字典 / -(void)imagePickerController:(UIImagePickerController )picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self dismissViewControllerAnimated:YES completion:nil];

//从字典key获取image的地址
UIImage *image = info[UIImagePickerControllerOriginalImage];

self.imageView.image = image;

}

  • (IBAction)upload:(UIButton *)sender {

    AFHTTPRequestOperationManager *mrg = [[AFHTTPRequestOperationManager alloc] init];

    NSMutableDictionary *params = [NSMutableDictionary dictionary]; params[@"username"] = @"123";

    NSString *url = @"http://192.168.130.110:8080/MJServer/upload";

    / * 上传时候调用的方法 * params post的参数,字典 * formData formData是post上去的数据 * name 服务器接受文件的名字 * fileName 文件的名字 / [mrg POST:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

    NSData *data = UIImageJPEGRepresentation(self.imageView.image, 1.0);
    [formData appendPartWithFileData:data name:@"file" fileName:@"1.jpg" mimeType:@"image/jpeg"];
    

    } success:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSLog(@"上传成功");
    

    } failure:^(AFHTTPRequestOperation operation, NSError error) {

    NSLog(@"上传失败");
    

    }];

} @end

 2 手动存储相片到相册 ```cpp
    for (int i = 0; i<=9; i++) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"00%d.png", i]];
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
        NSLog(@"%@", image);
        [NSThread sleepForTimeInterval:1];   //存储不可以过快
    }

3 按钮文字设置成中文 info.plist 中添加Localized resources can be mixed 设置为YES 4 图片选择控制器 当想自己写一个图片选择控制器的时候,需要利用AssetsLibrary.framework,利用这个框架获得所有的相册图片

标签:c/c++

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. yuer 发表 2018-07-27 08:46:07 coredump之百米之内必有解药
  2. hev 发表 2018-04-28 06:11:38 一个简单、轻量的 Linux 协程实现
  3. hev 发表 2017-10-19 15:56:11 FSH – 助你接入私有网络中的 Linux 终端
  4. gonwan 发表 2015-04-15 08:03:07 Database Access Layer in C++
  5. gonwan 发表 2015-12-28 08:41:13 Basic Usage of Boost MultiIndex Containers
  6. gonwan 发表 2016-01-19 03:37:54 Coroutines in C++/Boost
  7. Haoxiang Li 发表 2017-10-25 20:29:02 MXNet C++ Deployment
  8. yuer 发表 2017-10-20 07:52:47 基于leveldb的持久消息队列SDK
  9. yuer 发表 2017-10-07 07:51:32 c++11完美转发
  10. 博主 发表 2016-09-03 00:00:00 C++编译期类型信息的利用
  11. yuer 发表 2017-09-06 03:03:29 libcurl访问unix socket
  12. yuer 发表 2017-09-07 08:14:58 valgrind检测php扩展的warning

发表评论