美文网首页
ios调用系统相机和相册的方法

ios调用系统相机和相册的方法

作者: zcaaron | 来源:发表于2016-08-10 18:21 被阅读287次
#import “CameraViewController.h”

@interface CameraViewController ()

@end

@implementation CameraViewController

– (void)viewDidLoad {

[super viewDidLoad];

NSArray *arr = @[@”调用相机”,@”调用图片库”,@”打开闪关灯”,@”关闭闪光灯”];

for (int i = 0; i < 4; i++) {

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(100, (100 + 10) * i + 50, 100, 100);
                                                                                                           
[button setTitle:arr[i] forState:(UIControlStateNormal)];

[button setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];

if (i == 0) {

[button addTarget:self action:@selector(addCarema) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 1)

{

[button addTarget:self action:@selector(openPicLibrary) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 2)

{

[button addTarget:self action:@selector(openFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

else if (i == 3)

{

[button addTarget:self action:@selector(closeFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

[self.view addSubview:button];

}

// Do any additional setup after loading the view.

}

-(void)addCarema

{

//判断是否可以打开相机,模拟器无法使用此功能

if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES; //是否可编辑

//摄像头

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker animated:YES completion:nil];

}else

{

//如果没有提示用户

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你没有摄像头” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

//拍摄完成后要执行的方法

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

//得到图片

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

//图片存入相册

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

[self dismissViewControllerAnimated:YES completion:nil];

}

//点击Cancel按钮后执行方法

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

[self dismissViewControllerAnimated:YES completion:nil];

}

-(void)openPicLibrary

{

//相册是可以用模拟器打开的

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES;

//打开相册选择照片

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentViewController:picker animated:YES completion:nil];

}else

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你没有摄像头” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

-(void)openFlashlight

{

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

if ([device hasTorch]) {

[device lockForConfiguration:nil];

[device setTorchMode:AVCaptureTorchModeOff];

[device unlockForConfiguration];

}

}

-(void)closeFlashlight

{

[self.AVSession stopRunning];

}

– (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark – Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

– (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

相关文章

网友评论

      本文标题:ios调用系统相机和相册的方法

      本文链接:https://www.haomeiwen.com/subject/qyejsttx.html