ios調用系統相機和相冊的方法

#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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容